我有一个使用jQuery的不显眼的验证一个asp.net MVC应用程序。我想在如下所述生成的表单上使用Html.ValidationSummary。我可以在由ajax调用返回的PartialView上使用ValidationSummary吗?
是否有任何黑客或解决方法,我可以用得到Html.ValidationSummary对那些通过Ajax调用其获取和显示局部视图生成的表单工作?
我使用AJAX调用一个控制器动作返回一个局部视图。然后,我将div的html设置为ajax调用结果。 Ajax调用看起来是这样的:
$.ajax({
type: "GET",
url: '/MyDomain/GetPartialView?myId=' + myId,
cache: false,
dataType: "html",
success: function (responseText) {
$tab.html(responseText);
$tab.find('form').validate();
}
});
和控制器动作看起来是这样的:
public ActionResult GetPartialView(long myId)
{
model = GetModel(myId);
return PartialView("_MyPartialView", model);
}
的PartialView是产生一种形式,像下面,和上一个普通的老* .cshtml网页窗体我有一个(无功能的)ValidationSummary以及一些输入。有什么办法可以让它起作用吗?现在jquery不显眼的验证工作,但它显示每个无效输入旁边的错误消息。我希望页面在ValidationSummary中显示错误消息。
@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<span id="validation-errors" class="validation-summary-errors">@Html.ValidationSummary(false, "Submit was unsuccessful. Please correct the errors and try again.")</span>
<div>@Html.EditorFor(m => m.MyField)</div>
}
什么做你的意思_right现在不显眼的jQuery验证works_?您动态加载表单,除非您在ajax成功回调中重新验证验证器,否则您将不会得到任何验证。 –
@StephenMuecke,验证工作,我看到了客户端验证的消息。我将如何“重新验证器”?我在窗体上调用.validate(),我想这是什么? –
不,你不会的。还有就是使用没有什么区别'ValidationSumary()'和'ValidationMessageFor()'只要客户端验证而言(当然'ViewData'没有什么用它做)。请参阅[这个答案](https://stackoverflow.com/questions/31768946/required-field-validations-not-working-in-jquery-popup-mvc-4/31769058#31769058)如何重新分析验证 –