asp.net-mvc-3 – StringLength屬性行為
我有這樣的屬性,它檢查最小和最大字串長度:
[StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 3)] public string PropertyName {get; set;}
基本上它是如何在預設的asp.net mvc 3.0模板中宣告(他們只有最大100).
因此,如果字串包含少於3個字元,則顯示錯誤訊息將是
"The PropertyNamemust be at least 3 characters long."
所以在這種情況下我沒有看到任何問題
但如果字串長度將超過10,則顯示訊息仍然是
"The PropertyNamemust be at least 3 characters long."
所以現在不正確了
但是,如果我將訊息模板更改為如下所示:
[StringLength(10, ErrorMessage = "The {0} must be at least {2} characters long and maximum {1} characters long", MinimumLength = 3)]
兩種情況的錯誤資訊將如下所示:
"The PropertyName must be at least 3 characters long and maximum 10 characters long"
而且還不是那麼好
1)訊息是長的
2)最好為每個案例顯示單獨的資訊,問題是我該怎麼做帽子?
有沒有什麼辦法可以顯示兩個不同的訊息,一個訊息如果長度小於最小值,另一個訊息的長度大於最大值?
我可以看到只有一種方法來修復它是宣告兩個單獨的StringLength屬性,一個將檢查最小值為另一個最大值,但不可能在方法上新增兩個相同的屬性,我也將使用MinLength和MaxLength屬性,但不會生成不引人注目的屬性.所以看起來我應該寫我的自定義驗證屬性
但是,對於一個StringLength驗證屬性,如果可能,每種情況(最小和最大)顯示兩個不同的訊息將會很好,你覺得如何?