私はいくつかの文字列を設定するためにいくつかのリソース ファイルを使用したい ASP.net MVC サイトを持っています。
ビューモデルを含むクラス ライブラリがあり、そこにリソース ファイル (ValidationMessages) を 1 つの文字列 (Test と呼ばれる) と共に追加し、ビュー モデルに次のようなプロパティを設定しました。
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' を追加することです。このカルチャを自分のマシンに登録しました (こちらのコードを使用)。global.asax で現在のカルチャを "en-gb-ly" に設定し、クラス ライブラリに ValidationMessages.en-gb-ly.resx を含めると、出力が Test の「ベース」バージョンに戻りました。文字列であり、私の en-gb-ly リソースのものではありません。
なぜこれが起こっているのか誰にも分かりますか?