【问题标题】:Why HtmlHelper would skip validation attributes为什么 HtmlHelper 会跳过验证属性
【发布时间】:2013-04-04 06:31:28
【问题描述】:

为什么@Html.TextBoxFor 和其他助手会跳过 jquery.validation 属性并创建没有这些属性的元素?我错过了一些参考资料还是什么?这是 MVC 3.0 项目。

如果我像这样手动添加它们:

@Html.TextBoxFor(x => x.Name, 
       new { data_val="true", data_val_required="Need that field" })

然后不显眼的验证工作。但假设构建元素并根据模型的DataAnnotations 放置这些属性。模型在那里,表单主体内的文本框,但仍然无法正常工作。会是什么呢?

更新:UnobtrusiveJavaScriptEnabledweb.config 中设置为true

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 validation jquery-validate


    【解决方案1】:

    1.如果文本框是通过 ajax 加载的,它可能不会被解析为不显眼的验证。 2.检查渲染的html文本框是否有data-val-required属性,判断是服务器端还是客户端的问题。

    【讨论】:

      【解决方案2】:

      要使不显眼的验证正常工作,您需要确保在您的 Web.config 中将 UnobtrusiveJavaScriptEnabled 设置为 true,并且您已包含以下 3 个脚本:

      • jQuery (~/Scripts/jquery-1.8.2.js)
      • jQuery 验证 (~/Scripts/jquery.validate.js)
      • 使用 jQuery Validate (~/Scripts/jquery.validate.unobtrusive.js) 进行不显眼的客户端验证的 MVC 插件。

      【讨论】:

        【解决方案3】:

        请确保您的 web.config 文件中有这两行

        <appSettings>
            <add key="ClientValidationEnabled" value="true" />
            <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        </appSettings>
        

        【讨论】:

        • 没问题 - 很高兴你明白了!
        猜你喜欢
        • 1970-01-01
        • 2021-11-25
        • 2018-05-07
        • 2014-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        相关资源
        最近更新 更多