在对重复问题进行投票或关闭之前,我想明确说明我已阅读本网站和其他人的旧帖子。问题是他们是旧的(至少有一些),并没有给出真正的好例子。使用Ajax窗体和ASP.Net处理服务器端验证MVC
我目前使用ASP.Net MVC 2.0与Ajax.BeginForm
和jQuery 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(支持远程服务器验证)
- 在
RenderPartial
和id='result'
将整个表格。 - 返回一些JSON使用结果和错误的消息
但有实在不是一个更好的解决方案(也许在ASP.Net MVC 3.0)? xVal仍然是一个很好的解决方案(不是很多开发正在进行)?
如果我使用JSON解决方案,是否有jQuery方法将错误分配给模拟100%客户端验证的特定元素?
如果有更好的解决方案,我准备切换我使用的技术。
谢谢,Lasse Espeholt
自MVC 2发布以来,我不认为客户端验证发生了任何“新”事件,因此我不确定您寻找哪种新信息。 – jfar 2010-08-30 14:10:06
@jfar xVal是为1.0制作的,但这仍然是一个不错的选择?我看到它的最新更新是1年前。我正在寻求推荐我应该使用哪种解决方案(或其他解决方案)。 – 2010-08-30 14:29:43