我有這樣的屬性,是檢查的最小和最大字符串長度: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 PropertyName must be at least 3 characters long."
所以我看不出有什麼問題,機智的在這種情況下
但比如果字符串長度會更10中的顯示信息仍然會
"The PropertyName must 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
驗證屬性會如何?
儘管有點晚,也許使用較短的錯誤消息將工作。 '{0}必須是在{1}和{2} long.' – saluce
我覺得顯示消息'的字段必須是3〜100之間characters'爲任何情況下使用完全足夠的字符。我認爲,如果你讓自己的屬性顯示不同的信息,你會花費太多時間在錯誤的地方。 –
我怎樣才能做到同樣的事情,但沒有數字和特殊字符串,你的情況,你可以輸入三個數字,並會出現任何錯誤,但我只需要的話計數。 – mikrimouse