2015年12月23日 星期三

[ASP.NET]必須設定ErrorMessageString或ErrorMessageResourceName其中一個,但不可同時設定。

最近在製作網站資料建立的頁面,採用DataAnnotation方法做資料驗證,這方法很方便,因為可以利用ASP.NET的Razor語法建立頁面,與Model綁定,即可做到前端加後端的驗證機制。

但將網站架設至IIS站台時卻發生了這樣的錯誤。
錯誤訊息如下:
必須設定ErrorMessageString或ErrorMessageResourceName其中一個,但不可同時設定。

經查詢後發現,原來這是ASP.NET Framework 4.5已知的錯誤,目前直接的解決方法就是在使用DataAnnotation Attribute的地方加上ErrorMessage = null,即可解決這個問題。

[EmailAddress(ErrorMessageResourceName = “MsgValidateEmailError”,
ErrorMessageResourceType = typeof(UserResources))]
public string Email { get; set; }

[EmailAddress(ErrorMessage = null,
ErrorMessageResourceName = “MsgValidateEmailError”,
ErrorMessageResourceType = typeof(UserResources))]
public string Email { get; set; }

再來另外的大絕招就是去升級.NET Framework 4.6吧!!

總結,當遇到這樣的錯誤時有以下兩種解決方案:
1. 在驗證屬性中增加ErrorMessage = null
2. 安裝.NET Framework 4.6

沒有留言:

張貼留言