ASP.netMVCアプリでカルチャ/ UIカルチャを設定するのに最適な場所はどこですか
現在、次のようなCultureControllerクラスがあります。
public class CultureController : Controller
{
public ActionResult SetSpanishCulture()
{
HttpContext.Session["culture"] = "es-ES";
return RedirectToAction("Index", "Home");
}
public ActionResult SetFrenchCulture()
{
HttpContext.Session["culture"] = "fr-FR";
return RedirectToAction("Index", "Home");
}
}
ホームページ上の各言語のハイパーリンクには、次のようなリンクがあります。
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
これは問題なく動作しますが、これを行うにはもっと適切な方法があると思います。
次のActionFilterhttp : //www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspxを使用してCultureを読んでい ます。私は少しMVCの初心者なので、これを正しい場所に設定しているとは確信していません。web.configレベルでは実行したくありません。ユーザーの選択に基づいている必要があります。また、ブラウザの設定からカルチャを取得するためにhttpヘッダーを確認したくありません。
編集:
明確にするために、私はセッションを使用するかどうかを決定しようとはしていません。私はそのビットに満足しています。私が解決しようとしているのは、各カルチャのアクションメソッドが設定されているカルチャコントローラでこれを行うのが最善かどうか、またはMVCパイプラインにこれを行うためのより良い場所があるかどうかです。