ASP.NET MVC 錯(cuò)誤提示信息本地化
許多朋友問(wèn)如何localize驗(yàn)證消息,而不想通過(guò)修改屬性值把它們變成了Hard-coded。
現(xiàn)在很容易做到。下面所涉及到的例子在ASP.NET MVC 1.0版本里是可以正常運(yùn)行的(ASP.NET MVC 2.0沒有試過(guò))。
讓我們從下面的ProductViewModel開始:
public class ProductViewModel {
[Price(MinPrice = 1.99)]
public double Price { get; set; }
[Required]
public string Title { get; set; }
}
如果我們將上面的兩個(gè)屬性的錯(cuò)誤信息進(jìn)行本地化,我們需要添加資源到我們的項(xiàng)目中去。我們可以右擊項(xiàng)目選擇屬性打開屬性框,點(diǎn)擊Resources, 你將會(huì)看到以下消息:
"此項(xiàng)目不包含默認(rèn)資源文件,點(diǎn)擊這里創(chuàng)建。"
遵從提示,創(chuàng)建完后,你將會(huì)看到資源文件編輯器:
主要要將Access Modifier改為Public (默認(rèn)情況下是Internal)
現(xiàn)在向資源文件輸入內(nèi)容(以下以西班牙語(yǔ)為例,以區(qū)分英語(yǔ)):
ASP.NET會(huì)創(chuàng)建一個(gè)以Resources命名的類,在這個(gè)類文件里面包含PriceIsNotRight和Required兩個(gè)屬性。 你可以從項(xiàng)目中的屬性文件里可以看到:
接下來(lái)的步驟是修改Model中的代碼,以便讓上述添加到資源文件里的錯(cuò)誤信息起作用:
代碼
{
[Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "Required")]
public string Title { get; set; }
[Price(MinPrice = 3.99, ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "PriceIsNotRight")]
public double Price { get; set; }
}
CustomValidationAttributeWeb.Properties.Resources.
現(xiàn)在,如下圖,當(dāng)我們提交無(wú)效信息時(shí),錯(cuò)誤信息會(huì)從資源文件讀取,并顯示給用戶,注意旁邊顯示的是西班牙語(yǔ),當(dāng)然你可以在資源文件用中文試試看:
原文:http://www.zivsoft.com/show.asp?id=55
posted on 2009-12-09 16:46 智艾悅 閱讀(845) 評(píng)論(1) 收藏 舉報(bào)


浙公網(wǎng)安備 33010602011771號(hào)