Nugetで最新のAttributeRoutingパッケージを使用して、ASP.Net MVCプロジェクトのルーティングを設定しています。私は、英語(プライマリ)とスペイン語(セカンダリ)の2つの言語を持つウェブサイトを作成しています。 2つの言語のURLが異なります。たとえば、英語についてはwww.root.com/en/about-us、スペイン語版の場合はwww.root.com/es/sobre-nosotrosとなります。属性のルーティングとローカリゼーションの問題
私は以下のようにルートプレフィックスを設定している: [RoutePrefix(「EN」、TranslationKeyは=「ホーム」)]
その後、私は私はそれがFluentTranslationProviderにXMLファイルから値を読み込み、作成したプログラムを持っています。登録私のルートのコードは次のようになります。
var translations = new FluentTranslationProvider();
translations
.AddTranslations()
.FromFile();
routes.MapAttributeRoutes(
config =>
{
config.AddRoutesFromControllersOfType<BaseController>();
config.AddTranslationProvider(translations);
config.CurrentUICultureResolver =
(httpContext, routeData) =>
(string) routeData.DataTokens["cultureName"] ??
Thread.CurrentThread.CurrentUICulture.Name;
});
そして、私は私のRoutes.axdページにアクセスし、次のように表示することができますので、それが動作しているようだ:http://imm.io/nm7Z
後の私のページでは、私のコードショー私のCurrentCultureはes-ARに設定されていますが、URLをビルドするためにURLHelperクラスを呼び出すと、デフォルトの英語版のみが作成され、スペイン語版は得られません。なぜこれが事実かもしれないのか誰にも私に洞察を与えることができますか?私はこれを私の人生のためにすることはできません。
はまた –
urlhelper呼び出すためにあなたのコードを追加してください、画像は、あなたが存在していないあなたのポストににリンク – Henrik