2015-06-23 30 views
1

我有本地化符合預期的標籤工作,但似乎無法弄清楚爲什麼驗證消息未被本地化。如果我將瀏覽器默認語言更改爲「es-ES」,則驗證消息爲西班牙語。但是,應用程序應該使用我們本地數據庫中設置的語言。例如,在下面的代碼中,Impacts的標籤正在本地化爲西班牙語,但ProductID錯誤消息以英語顯示。文化正在使用cookie的控制器行動的開始。ASP.Net MVC驗證本地化不覆蓋瀏覽器默認語言

我還注意到,如果我在web.config中將語言設置爲西班牙語,那麼驗證消息是用西班牙語顯示的。

這是當前正確運行標籤的代碼,但不適用於驗證消息。

我想要的是驗證錯誤消息是像西班牙文的標籤。

的Web.Config:

<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true" /> 

視圖模型:

[Required(ErrorMessageResourceName = "errProduct", ErrorMessageResourceType = typeof(Resources.ProductSupport.addcallText))] 
public Int32? ProductID { get; set; } 

[Display(Name = "lblEffect", ResourceType = typeof(Resources.ProductSupport.addcallText))] 
public IEnumerable<SelectListItem> Impacts { get; set; } 

查看:

@Html.ValidationMessageFor(x => x.ProductID) 

@Html.LabelFor(x => x.Impacts) 

回答

1

中的Global.asax.cs文件中設置文化似乎是工作。

protected void Application_AcquireRequestState(object sender, EventArgs e) 
{ 
    LanguageHelper.SetCulture(null); 
}