我使用ASP.NET MVC 3 + FLUENT驗證+ NINJECT客戶端驗證屬性3
我有X型號和規則對於模型是什麼像這樣:
RuleFor(c => c.FirstName).NotEmpty();
RuleFor(c => c.LastName).NotEmpty();
我發現了一點奇怪的東西,發動機把所有的隱藏要素,並在下拉列表,單選按鈕等。驗證屬性,而且我也沒有針對該驗證配置中指定該模型,所以我想它是默認的...
<input type="hidden" value="1" name="Id" id="Id" data-val-required="&#39;Id&#39; must not be empty." data-val-number="The field Id must be a number." data-val="true">
由於隱藏元素總是有值,所以驗證是有效的,但是我對單選按鈕有問題。例如,如果我不想總是默認選擇一個單選按鈕,但是爲空,並且如果我想在該項目上放置驗證規則,則呈現會將默認驗證屬性和我的規則放在一起,這樣就會變得混亂並驗證不能正常工作...
任何人都有類似的問題或知道這個,或者我必須拉ASP.NET MVC的來源,並自己查找它? :)
半懶惰和小下推按期限編碼器
編輯:
我試着提出從這個鏈接的解決方案:
流利的驗證。錯誤:在不顯眼的客戶端驗證規則驗證類型名稱必須在每個領域,無論AddImplicitRequiredAttribute設置所需屬性的唯一
但asp.net的MVC發出...
哈哈哈,不錯......但我不想只改變我的viewmodels的聲明,無論如何我可以改變這種默認行爲? – Marko
@Marko,不,你必須改變你的視圖模型。這也是有道理的,因爲如果不需要的話,你不應該使用'required'(值)類型來表示它。 –
嗯,實際上是沒有意義的,因爲我不想改變我的視圖模型,以支持渲染驗證屬性的引擎......它是有道理的,我可以改變引擎的默認行爲,以獲得驗證屬性我想要和我想要怎樣... – Marko