Какое место лучше всего подходит для культуры Culture/UI в приложении ASP.net MVC.
В настоящее время у меня есть класс 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 noob, поэтому не уверен, что я устанавливаю это в нужном месте. Я не хочу делать это на уровне web.config, он должен основываться на выборе пользователя. Я также не хочу проверять их http-заголовки, чтобы получить культуру из настроек браузера.
Edit:
Просто, чтобы быть ясным - я не пытаюсь решить, использовать ли сеанс или нет. Я доволен этим. То, что я пытаюсь решить, - это лучше всего сделать это в контроллере культуры, который имеет метод действий для каждой культуры, который должен быть установлен, или есть лучшее место в конвейере MVC для этого?