Asp.net mvc 3 NETMVC3。如何将一个表单的验证摘要放入另一个表单?

Asp.net mvc 3 NETMVC3。如何将一个表单的验证摘要放入另一个表单?,asp.net-mvc-3,validation,Asp.net Mvc 3,Validation,我有一个需要验证摘要的小表单,但是这个验证摘要应该放在另一个表单上 我知道,有一个限制-验证摘要只检查当前表单中的元素,所以我要搜索的是某种紧缩 有没有解决方案不涉及编写自己的验证和数百行Javascript?关于这些表单是什么以及它们之间的关系,或者为什么需要移动验证信息,您几乎没有给出任何信息。另外,让我们把事情弄清楚:验证摘要不检查任何内容,它只显示验证错误的摘要。不过,您是对的,摘要仅针对父窗体显示。如果您确实不想将摘要从一个表单移动到另一个表单,则可能需要绑定到submit()事件,并

我有一个需要验证摘要的小表单,但是这个验证摘要应该放在另一个表单上

我知道,有一个限制-验证摘要只检查当前表单中的元素,所以我要搜索的是某种紧缩


有没有解决方案不涉及编写自己的验证和数百行Javascript?

关于这些表单是什么以及它们之间的关系,或者为什么需要移动验证信息,您几乎没有给出任何信息。另外,让我们把事情弄清楚:验证摘要不检查任何内容,它只显示验证错误的摘要。不过,您是对的,摘要仅针对父窗体显示。如果您确实不想将摘要从一个表单移动到另一个表单,则可能需要绑定到submit()事件,并使用jquery将.validation summary errors元素移动到另一个表单。

使用标准事件无法解决此问题:在提交事件触发“验证”之前第页上没有方法验证摘要,调用“验证”将停止事件调度(如果您有任何原因错误)

我所做的工作包括编辑“jquery.validate.unobtrusive.js”。步骤:

1)在
函数onErrors中的“jquery.validate.unobtrusive.js”文件中,我添加了事件调度:

function onErrors(form, validator) {
        // native code
        jQuery("#submitErrorProxy").trigger(jQuery.Event("click")); // my event
    }
2) 使用
id=“submiterorproxy”

3)在应显示验证摘要的位置添加了div容器

<div class="form-line" id="validationSummaryContainer">
     //validation summary should be moved here 
</div>
其中,
clone(true,true)
-复制所选元素及其所有子元素。并且使用
appendTo
代替
move
,因为原始的validation摘要应该出现在原始表单上

5) 隐藏原始有效的摘要容器

<div class="form-line" style="visibility: hidden; height: 0px">
    @Html.ValidationSummary(false)
</div>

@Html.ValidationSummary(false)

在提交事件上移动ValidationSummary是一个好主意,但当我的方法订阅此事件时,在ValidationSummary出现在页面上之前调用该方法-这会导致不同但并不简单的问题。
<div class="form-line" style="visibility: hidden; height: 0px">
    @Html.ValidationSummary(false)
</div>