首先,我是相當新的MVC,但有一個現有的項目在MVC3和四處尋找MVC4,所以這兩個版本的答案讚賞。MVC非常量的屬性參數與會員資格屬性同步
在我的MVC視圖我有這樣一行:
Passwords must be at least @Membership.MinRequiredPasswordLength characters long.
,並在型號我有這樣的:
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
(對於MVC模板項目產生這些都是自動)
我的web.config MembershipProvider具有此屬性:
minRequiredPasswordLength="8"
這樣做的問題是,用戶將被告知最小長度爲8,但實際驗證將爲6. 當然,我可以將兩者設置爲相同的值,但我想知道是否有簡單的方法只能使用其中的一個或同時使用兩者。
我已經試過這樣:
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = Membership.MinRequiredPasswordLength)]
,但得到的錯誤「的屬性參數必須是常量表達式,......」
我知道寫自定義驗證屬性的選項但我想避免這一點,因爲我基本上會寫驗證邏輯,已經存在(除了值的來源)
或者,我可以顯示模型的最小亮度在視圖中是什麼?
我怎樣才能只有一個地方做出改變?
是的,我確實遇到過這個選項,但是我會編寫自定義驗證器來實現已經存在的相同驗證邏輯(值的來源除外)。如果可能的話,我寧願避免這種情況,但是謝謝你的建議。 – PostureOfLearning 2012-07-19 00:46:45
你的答案可能不是我所希望的,但它似乎是我需要做的,所以我將它標記爲答案。我會給你評分上的+1,但我還沒有要求15分。 – PostureOfLearning 2012-07-23 23:22:23
我得到了足夠的積分給你+1 ...;)謝謝 – PostureOfLearning 2012-08-01 23:16:38