繁体   English   中英

使用Ajax表单和ASP.Net MVC处理服务器端验证

[英]Handling server-side validation with Ajax forms and ASP.Net MVC

在拒绝或结束重复的问题之前,我想表明我已经阅读了本网站和其他网站上的旧帖子。 问题在于它们老(至少有些),没有给出很好的例子。

我目前将ASP.Net MVC 2.0与Ajax.BeginFormjQuery Validation客户端验证一起使用,两者都工作得很好。 但是我希望服务器端验证错误像客户端错误一样显示(不一定是远程错误)。 服务器端错误当前应用于ModelState.AddModelError

我使用的代码扩展了以下内容:

<% Html.EnableClientValidation(); %>

using (Ajax.BeginForm("Bar", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "result"})) { %>
<fieldset>
    <p>
        <%: Html.TextAreaFor(model => model.Foo) %>
        <%: Html.ValidationMessageFor(model => model.Foo) %>
    </p>
    <p>
        <input type="submit"/>
    </p>
</fieldset>

而且,正如我提到的,我使用ModelState.AddModelError设置了错误。 当前,我返回有关错误的验证摘要(该摘要未绑定到导致它们的元素),否则返回我的结果。

到目前为止,我已经遇到了针对此问题的多种解决方案:

  • xVal(支持远程服务器验证)
  • RenderPartialid='result'设置整个表单。
  • 返回带有结果和错误消息的JSON

但是确实没有更好的解决方案(也许在ASP.Net MVC 3.0中)吗? xVal仍然是一个很好的解决方案(没有很多开发正在进行)吗?

如果我使用JSON解决方案,是否有jQuery方式可将错误分配给特定元素以模拟100%的客户端验证?

如果有更好的解决方案,我准备切换我使用的技术。

谢谢,拉瑟·埃斯佩霍尔特

xVal很好! 我将它与2个asp.net mvc 2项目一起使用,并且效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM