2012-09-05 13 views
0

Data Entry Page and Validation ErrorsMVC 3驗證:我可以在多個地方的多個錯誤消息數爲每個控制

這是我的MVC註冊頁面。您可以將驗證錯誤消息整理在上面。 UI設計師需要紅色(*)出現在每個需要注意的控件旁邊。

我知道如何使用MVC 3驗證通過放置@ Html.ValidationMessageFor來生成*或上面的錯誤消息,並將錯誤消息定製爲*的更詳細的消息。

我弄不清楚是怎麼做到的。我知道我可以用JQuery解決這個問題。但我懷疑MVC驗證有辦法做到這一點。 @ Html.ValidationMessageFor似乎適用於每個模型成員/控制一次,所以這可能不是這樣...

所以總結,有沒有辦法讓我爲每個添加第二個錯誤信息(如*)控制位於與原始消息不同的位置,只有MVC驗證並且沒有JQuery/JS。

回答

1

據我所知,驗證反饋只支持每個輸入一個反饋字符串。你可以爲每一個設置自定義的反饋信息,並把*放在字符串的前面,但是這打破了MVC配置好處的很多約定。

現在,這就是說爲什麼不嘗試CSS?據我瞭解,這些反饋消息(當每個輸入表單旁邊)使用固定的CSS類。所以也許沿着這條線......

field-validation-error:before 
{ 
    content:"* "; 
} 
+0

這是一個非常酷的想法。我必須仔細觀察! –

+0

雖然這是一個好主意,但我意識到它與James使用驗證摘要和ValidationMessageFor的建議有相同的缺點。因爲css不會像控件的標籤旁邊那樣,而是在錯誤旁邊。但它是一種創造性的方法,並確認了每個人都告訴我的... *的總結和個人信息。 –

+0

啊,我明白了。您的原始問題要求將*放在需要注意的控件旁邊,而不是該控件的標籤。我想知道是否可以使用CSS將它放在標籤旁邊?標籤上的東西需要那個類的兄弟姐妹跨度可能?我沒有嘗試過,但正如你所說,jQuery也可以做到這一點。 –

0

Html.ValidationSummary在頂部。 Html.ValidationMessageFor旁邊的每個字段。

+0

詹姆斯,謝謝,這將部分解決我的問題。唯一的問題是驗證摘要只會在提交時填充。這並不糟糕。但我喜歡不顯眼的javascript行爲,而不必提交。有沒有辦法實現這一點,同時保持Ajax-ish? –

相關問題