ASP.Net MVC 验证本地化未覆盖浏览器默认语言
ASP.Net MVC Validation Localization Not Overriding Browser Default Language
我对标签进行了预期的本地化,但似乎无法弄清楚为什么验证消息没有被本地化。如果我将浏览器 默认 语言更改为 "es-ES",则验证消息为西班牙语。但是,应用程序应该使用我们本地数据库中设置的语言。例如,在下面的代码中,Impacts 标签本地化为西班牙语,但 ProductID 错误消息显示为英语。使用 cookie 在控制器操作开始时设置文化。
我还注意到,如果我在 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)
在 Global.asax.cs 文件中设置区域性似乎有效。
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
LanguageHelper.SetCulture(null);
}
我对标签进行了预期的本地化,但似乎无法弄清楚为什么验证消息没有被本地化。如果我将浏览器 默认 语言更改为 "es-ES",则验证消息为西班牙语。但是,应用程序应该使用我们本地数据库中设置的语言。例如,在下面的代码中,Impacts 标签本地化为西班牙语,但 ProductID 错误消息显示为英语。使用 cookie 在控制器操作开始时设置文化。
我还注意到,如果我在 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)
在 Global.asax.cs 文件中设置区域性似乎有效。
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
LanguageHelper.SetCulture(null);
}