【发布时间】:2019-04-24 23:50:25
【问题描述】:
我的 ASP.NET MVC 应用程序中有以下资源文件来存储英语和西班牙语的表单验证错误消息
ErrorMessages.resx -- 英语错误消息ErrorMessages.sp.resx -- 西班牙语错误消息
在需要System.ComponentModel.DataAnnotations 必需属性的模型中,它们的标记如下:
[Required(ErrorMessageResourceType = typeof(ErrorMessages), ErrorMessageResourceName)]
public string MyProperty { get; set; }
在我的控制器中,我正在读取一个 JavaScript cookie,其中包含用户在网站上选择的语言,并以编程方式设置当前线程和 HTTP 会话的“CultureInfo”:
public ActionResult MyController()
{
var language = HttpContext.Request.Cookies["language"].Value;
if(language.Equals("english"))
{
HttpContext.Session["culture"] = "en-US";
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
}
else
{
HttpContext.Session["culture"] = "es-US";
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-US");
}
}
CultureInfo 值修改后如何设置合适的资源文件?
【问题讨论】:
-
西班牙文 .resx 文件应该是 *.es.resx,而不是 *.sp.resx
-
我将文件重命名为适当的
CultureInfo值。感谢您的建议
标签: c# asp.net-mvc-5 cultureinfo resx