代码之家  ›  专栏  ›  技术社区  ›  Lasse Espeholt

使用Ajax表单和ASP.NetMVC公司

  •  0
  • Lasse Espeholt  · 技术社区  · 14 年前

    在否决投票或结束重复的问题之前,我想澄清一下,我已经阅读了这个网站和其他网站上的旧帖子。问题是他们 老的(至少有一些)并没有给出很好的例子。

    我目前使用ASP.NetMVC 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' .

    但真的没有更好的解决办法吗(也许是ASP.NetMVC 3.0版)?xVal仍然是一个很好的解决方案吗(没有太多的开发正在进行)?

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

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

    1 回复  |  直到 14 年前
        1
  •  2
  •   Patricia    14 年前

    xVal很好!我把它和2一起用asp.netmvc2项目,它的工作非常出色。