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

时间:2012-08-20 13:24:55

标签: asp.net asp.net-mvc-4

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

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

1 个答案:

答案 0 :(得分:3)

您的观点应与此类似:

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

还可以使用字段旁边的@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);
}

在模型上使用数据注释使其工作。 (教程here。)