我有一个ASP.net MVC网站,我想使用几个资源文件来设置一些字符串。ASP.net MVC - 使用自定义文化 - 资源未被加载
我有一个类库包含我的ViewModels,我添加了一个资源文件(ValidationMessages)那里,一个字符串(称为测试),然后有像这样的属性在我的视图模型:
public string TestResource
{
get
{
return ValidationMessages.Test;
}
}
这工作得很好,当我的看法输出像这样:
<div>@Model.TestResource</div>
如果我添加一个ValidationMessages.en-au.resx(我的默认是EN-GB)文件到我的类库,并创建一个不同版本的测试字符串,然后在我的global.asax中有以下内容:
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-au");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-au");
}
而且这也很好。
我想要做的就是添加一个自定义文化'en-gb-ly' - 我已经在我的机器上注册了这种文化了(使用here的代码)。当我在我的global.asax中将当前文化设置为“en-gb-ly”,并在我的类库中包含ValidationMessages.en-gb-ly.resx时,输出已恢复为测试的“基本”版本字符串,而不是我的en-gb-ly资源中的那个。
任何人有任何想法,为什么这可能会发生?
快速检查 - 是否有一些错字?你写了你添加了自定义文化'en-xx',但随后用'en-ly'做了测试。你的意思是'en-ly'而不是'en-xx'? – Clafou
对不起,Clafou - 打错了,现在修复了。 – Paddy
阿哈 - 问题现在似乎解决了。我之前一直在关注并添加并随后删除了一个en-us资源文件 - 该DLL仍然存在于我的构建文件夹中 - 删除它并重建将它整理出来... – Paddy