10

どのページでも現在のアクションとコントローラー名を動的に取得し、実際にそれらを使用して、同じアクションとコントローラー名にリンクする新しい HTML.ActionLink を別の領域に作成できるようにする必要があります。したがって、新しい HTML.ActionLink を作成する際に使用する変数として、現在のアクションとコントローラー名を取得する必要があると思います。

そのため、www.site.com/about ページを表示している場合は、www.site.com/es/about ページへのリンクを動的に生成する必要があります。

私は基本的に、自分のサイトのスペイン語翻訳版を別のエリア フォルダーに作成しました (同じ名前のコントローラーとアクションとビューを使用し、コンテンツだけがすべてスペイン語です)。ページの英語版 (デフォルトであり、ルート サイト ビューに存在する) とスペイン語版 (ビューはエリア フォルダー "es" に存在する) の間をユーザーが切り替えられるようにする必要があります。現在どのページにいても。すべてのページで使用される _Layout の _topNavigation である共有部分ビューでこれが必要なため、これらのリンクを「ハードコード」することはできません。

Please let me know if I need to clarify. I'm sure using "areas" wasn't really the way to go when localizing an application, but I'm still trying hard to teach myself asp.net MVC. I read many MANY tutorials and examples on localization, and I could just not get them to work or make sense.

I should also add that I already know how to use HTML.ActionLink to go back and forth between the areas. I've managed to create the correct HTML.ActionLinks to any of the views in the spanish (es) area, and to any of the views in the default site. So that is not my question.

Any help is greatly appreciated! Thanks!

4

3 に答える 3

1

これを試して:

 Html.ActionLink("Espanol", "action", "ControllerName", new { Area = "es" }, null)
于 2013-11-04T23:27:47.187 に答える