首先對於Microsoft MVC團隊感到抱歉,因爲本地化數據註釋驗證消息沒有簡單的解決方案。這花了我很多時間,最後沒有找到簡單的解決方案!本地化mvc 3.0驗證客戶端消息
我終於決定繼承RequiredAttribute
做本地化。所以我這樣做了:
public class MyRequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute
{
public MyRequiredAttribute()
: base()
{
this.ErrorMessageResourceType = typeof(Resources.DataAnnotationDefaults);
this.ErrorMessageResourceName = "Required";
}
}
其中我在DataAnnotationDefaults.resx
文件中提供了我的本地化消息。 所以我可以用這個簡單的
[MyRequired]
public int UnitCode { get; set; }
但問題是:它不會在客戶端應用,只是在服務器端。爲什麼?我錯過了什麼?
令人驚訝的是,下面的行是好的,並在客戶端工作!
[Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(DataAnnotationDefaults))]
public int UnitCode { get; set; }
如果有人能幫助我,我會很高興和讚賞。
將'Required'屬性放在非空值類型上幾乎沒有任何意義。像int這樣的值類型總是有一個默認值。你有嘗試過使用可空的整數嗎? –
我編輯了你的帖子,請儘量保持它們的客觀性,不要咆哮。 – jgauffin