ASP.net MVC - 使用自定义文化 - 资源未加载

时间:2012-10-25 10:53:05

标签: asp.net-mvc localization

我有一个ASP.net MVC站点,我想使用几个资源文件来设置一些字符串。

我有一个包含我的viewmodels的类库,我在那里添加了一个资源文件(ValidationMessages),只有一个字符串(称为Test),然后在我的视图模型中有一个这样的属性:

        public string TestResource
        {
            get
            {
                return ValidationMessages.Test;
            }
        }

这样可以正常工作,在我的视图上输出如下:

<div>@Model.TestResource</div>

如果我将ValidationMessages.en-au.resx(我的默认值为en-gb)文件添加到我的类库并创建不同版本的测试字符串,然后在我的global.asax中包含以下内容: / p>

 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' - 我已经在我的机器上注册了这种文化ok(使用来自here的代码)。当我在我的global.asax中将当前文化设置为“en-gb-ly”并在我的类库中包含ValidationMessages.en-gb-ly.resx时,输出已恢复为测试的“基本”版本字符串,而不是我的en-gb-ly资源中的字符串。

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

要检查的第一件事是按照预期部署en-ly附属程序集。不幸的是,如果您的构建计算机上没有安装自定义文化,那么它甚至不会构建!