MVC4 Ajax表单:如何显示服务器端验证

Rom*_*zur 5 asp.net asp.net-mvc-4

我正在使用@Ajax.BeginForm帮助方法,它通过Ajax将表单数据提交给服务器.当数据到达服务器时,将处理某些服务器端验证,并将最终结果传递回浏览器.

我的问题是,我希望在没有页面刷新的情况下显示错误.基于此我发现了很多问题,但它们已经过时了.我想知道是否有一些新方法如何实现这一目标.到目前为止,我发现的最好的方法是使用jQuery处理结果.但也许在新的MVC4中有一些内置的功能如何以更好的方式实现这个问题?

And*_*oth 3

您的视图应类似于以下内容:

<div id="update-this">
@using (Ajax.BeginForm("YourAction", new AjaxOptions { UpdateTargetId = 'update-this' }))
{    
}
</div>
Run Code Online (Sandbox Code Playgroud)

还可以使用@Html.ValidationMessageFor(model => model.someField)字段旁边的按钮来显示错误消息。

如果有任何错误,在服务器端返回部分视图:

public ActionResult YourAction(YourModel yourmodel)
{
    if (ModelState.IsValid)
    {
        // Do what is needed if the data is valid and return something
    }
    return PartialView("DisplayPartial", yourmodel);
}
Run Code Online (Sandbox Code Playgroud)

并在模型上使用数据注释以使其正常工作。(教程在这里。)