在ASP.net MVC应用程序中设置文化/ 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>
效果很好,但我认为有一种更合适的方法可以做到这一点。
我正在使用以下ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx阅读文化 。我有点MVC菜鸟,所以不确定我将其设置在正确的位置。我不想在web.config级别上执行此操作,它必须基于用户的选择。我也不想检查其HTTP标头以从其浏览器设置中获取区域性。
编辑:
只是要清楚-我不是要决定是否使用会话。我对此感到满意。我要解决的问题是,最好是在具有针对每个区域性设置操作方法的区域性控制器中执行此操作,还是在MVC管道中有更好的位置执行此操作?