我有一個視圖模型用於改變密碼,它使用Compare
DataAnnotation像這樣:比較屬性不使用顯示屬性相比,財產
[Display(Name = "New Password")]
public string New { get; set; }
[Compare("New")]
[Display(Name = "Confirm Password")]
public string ConfirmPassword { get; set; }
不幸的是,Compare
屬性不使用的Display
屬性比較的財產。
錯誤信息顯示爲
'Confirm Password' and 'New' do not match.
,你可以看到使用比較屬性的Display
屬性,而不是比較屬性的。
我還可以指定我不想使用ErrorMessage
參數,因爲這樣我會硬編碼的屬性名稱,而不是簡單地從現有的屬性獲取它。我希望儘可能將此解決方案保留爲最佳實踐。
如何使Compare
屬性可以利用比較屬性的Display
屬性?
幸運的是,這是行得通的。不幸的是,它不會達到我的目的,因爲創建新屬性將刪除jQuery客戶端驗證,並且僅在回發時進行驗證。我會將此標記爲答案,但是我不會在我的項目中使用它。不管怎麼說,多謝拉! – Kehlan
對不起,我更新了答案,你需要做的額外工作:) –
CompareAttributeAdapter類似乎是System.Web.Mvc組件的內部,你怎麼能夠使用它? – Konamiman