這是我們MVC 2.NET MVC:本地化RequiredAttribute標籤(沒有資源文件)
面臨.NET我們正在嘗試使用DataAnnotations照顧模型驗證我們的問題,就像它應該的那樣。我們遇到的唯一問題是我們不需要標準錯誤消息(因爲我們的網站上有多種語言)。
我們希望本地化,但網站的設置方式是所有文本都來自數據庫。所以我們希望在數據庫中也有我們的錯誤消息。
所以我們寫了一個定製RequiredAttribute標籤,就像這樣:
public class LocalizedRequiredAttribute : RequiredAttribute
{
public string LocalizedErrorMessage
{
get
{
return ErrorMessage;
}
set
{
ErrorMessage = value.Translate();
}
}
}
我們寫的擴展String類添加了「翻譯()」方法,它做必要的數據庫查找正確的本地化版本。
我們用我們的屬性是這樣的:
[LocalizedRequired(LocalizedErrorMessage = "Naam is required")]
public string Name {get; set; }
這工作,但只有一次。
如果您先用法語訪問該網站,則會看到法語錯誤消息,指出您應該輸入值。如果您稍後訪問英文網站,您仍然會在英文頁面上看到法文錯誤。安裝員似乎只被調用一次。
我們可以做什麼來防止此行爲,並在每次運行驗證/模型填充值時刷新錯誤消息?
感謝您給我的任何幫助。
那是不行的,因爲它看起來像吸永遠不會被調用(通過調試測試應用程序)。我想它直接調用RequiredAttribute類中的「ErrorMessage」。 – 2011-03-24 15:59:55
啊。我期待ErrorMessage是虛擬的。原來它不是。你唯一的選擇可能是使用一個資源類(沒有資源文件)。直接編輯答案,因爲我跑出空間 – Naraen 2011-03-24 17:03:44