Asp.net mvc 3 仅验证ajax加载的局部视图
我有一个带有一些控件的窗体。窗体上有一个按钮,用于加载局部视图。在局部视图中,有两个必填字段文本框以及一个按钮。当它被点击时,我只需要为部分视图中的文本框显示错误消息,而不是为实际表单中的字段显示错误消息。当我点击表单的提交按钮时,所有的错误信息都会显示出来 加载部分视图后,我将重新初始化验证插件,如下所示Asp.net mvc 3 仅验证ajax加载的局部视图,asp.net-mvc-3,unobtrusive-validation,asp.net-mvc-validation,Asp.net Mvc 3,Unobtrusive Validation,Asp.net Mvc Validation,我有一个带有一些控件的窗体。窗体上有一个按钮,用于加载局部视图。在局部视图中,有两个必填字段文本框以及一个按钮。当它被点击时,我只需要为部分视图中的文本框显示错误消息,而不是为实际表单中的字段显示错误消息。当我点击表单的提交按钮时,所有的错误信息都会显示出来 加载部分视图后,我将重新初始化验证插件,如下所示 $('#test').removeData("validator"); $.validator.unobtrusive.parse('#test'); 我尝试使用下面线程中描述的验证属性,
$('#test').removeData("validator");
$.validator.unobtrusive.parse('#test');
我尝试使用下面线程中描述的验证属性,但它不起作用。也许它适用于正常加载的视图
但是,我可以通过调用textbox1.valid()和textbox2.valid()分别进行验证。但我认为我缺少了做这件事的标准方法。非常感谢您的帮助。您可以通过使用Ajax.BeginForm()提交局部视图来实现这一点 @使用(Ajax.BeginForm(“SomeActionName”,新的AjaxOptions{HttpMethod=“POST”,UpdateTargetId=“targetId”})) { 然后在partail视图中,您可以调用Ajax.BeginForm的OnSuccess方法
@using (Ajax.BeginForm("SomeActionName", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "targetId",OnSuccess="success"}))
{
}
<script type="text/javascript">
function success(data)
{
if(data.redirect)
{
windows.location = data;
}
}
</script>
@使用(Ajax.BeginForm(“SomeActionName”,新的AjaxOptions{HttpMethod=“POST”,UpdateTargetId=“targetId”,OnSuccess=“success”}))
{
}
功能成功(数据)
{
if(data.redirect)
{
windows.location=数据;
}
}
检查两种方式哪一种适合您。sundeep是否只验证部分视图控件?是否有人可以建议其他选项。。
@Html.EditorFor(mode=>model.FirstText)
@Html.EditorFor(mode=>model.SecText)
<input type="submit" value="save">
}
//In Controller
public ActionResult SomeAction(SomeModel model)
{
return PartaiulView(model);
}
//In View
<div id="targetId">
@Html.Partail("PartialView")
</div>
public ActionResult SomeAction(SomeModel model)
{
if(ModelState.IsValid)
{
return Json(new {redirect = @Url.Action("SomeAction","SomeController")})
}
return PartaiulView(model);
}
@using (Ajax.BeginForm("SomeActionName", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "targetId",OnSuccess="success"}))
{
}
<script type="text/javascript">
function success(data)
{
if(data.redirect)
{
windows.location = data;
}
}
</script>