2013-04-11 49 views
0

爲什麼@Html.TextBoxFor和其他助手會跳過jquery.validation屬性並創建沒有這些屬性的元素?我是否缺少一些引用或其他內容?這是MVC 3.0項目。爲什麼HtmlHelper會跳過驗證屬性

如果我手動添加這樣的:

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

那麼不顯眼的驗證工作。但是,假設構建元素並基於Model的DataAnnotations來提供這些屬性。模型在那裏,表單體內部的文本框,仍然不起作用。會是什麼呢?

UPD:UnobtrusiveJavaScriptEnabled設置爲trueweb.config

回答

1

請確保你的web.config文件

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

yup ...忘了第一個...非常感謝 – Agzam 2013-04-11 21:59:07

+0

沒問題 - 很高興你明白了! – Tommy 2013-04-11 22:03:36

0

一個不引人注目的驗證這兩條線工作,你需要確保UnobtrusiveJavaScriptEnabled被設置爲true您的Web.config並且您已包含這3個腳本:

  • jQue RY(〜/腳本/ jQuery的1.8.2.js)
  • jQuery驗證(〜/腳本/ jquery.validate.js)
  • 的MVC插件與jQuery驗證(〜/腳本/ jquery的不顯眼的客戶端驗證。 validate.unobtrusive.js)。
0

1.如果文本框是通過ajax加載的,它可能不會被Unobtrusive驗證解析。 2.如果文本框中存在data-val-required屬性以確定它是服務器端還是客戶端問題,則檢查呈現的html。