在ASP.net MVC应用程序中设置Culture/UI Culture的最佳位置是什么
目前我有一个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");
}
}
Run Code Online (Sandbox Code Playgroud)
以及主页上每种语言的超链接,其链接如下:
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但我认为有一个更合适的方法来做到这一点.
我正在使用以下ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx阅读文化 .我有点像MVC菜鸟,所以我不相信我会把它设置在正确的位置.我不想在web.config级别这样做,它必须基于用户的选择.我也不想检查他们的http-header以从他们的浏览器设置中获取文化.
编辑:
只是要明确 - 我不是要决定是否使用会话.我对此感到高兴.我想要解决的是,如果最好在文化控制器中执行此操作,该控制器具有要设置的每个文化的操作方法,或者在MVC管道中是否有更好的位置来执行此操作?