为什么HtmlHelper会跳过验证属性

时间:2013-04-11 21:39:39

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

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

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

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

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

upd:UnobtrusiveJavaScriptEnabled设置为true

中的web.config

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

要进行不显眼的验证,您需要确保UnobtrusiveJavaScriptEnabled中的true设置为Web.config并且您已包含这3个脚本:

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

答案 2 :(得分:0)

1.如果文本框是通过ajax加载的,则可能无法解析Unobtrusive验证。 2.如果文本框中存在data-val-required属性,则检查呈现的html,以确定它是服务器端还是客户端问题。