Как лучше всего установить культуру / культуру пользовательского интерфейса в приложении 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, поэтому не уверен, что устанавливаю это в правильном месте. Я не хочу делать это на уровне web.config, это должно быть основано на выборе пользователя. Я также не хочу проверять их http-заголовки, чтобы узнать культуру из настроек браузера.
Редактировать:
Чтобы быть ясным - я не пытаюсь решить, использовать сеанс или нет. Я доволен этим. Я пытаюсь понять, лучше ли это сделать в контроллере культуры, который имеет метод действия для каждой культуры, который должен быть установлен, или есть лучшее место в конвейере MVC для этого?