Jakie jest najlepsze miejsce do ustawienia kultury / kultury interfejsu użytkownika w aplikacji ASP.net MVC
Obecnie mam klasę CultureController, która wygląda następująco:
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");
}
}
oraz hiperłącze dla każdego języka na stronie głównej z takim linkiem:
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
co działa dobrze, ale myślę, że istnieje bardziej odpowiedni sposób, aby to zrobić.
Czytam kulturę za pomocą następującego filtra ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx . Jestem trochę noobem MVC, więc nie jestem pewien, czy ustawiam to we właściwym miejscu. Nie chcę tego robić na poziomie web.config, musi to być oparte na wyborze użytkownika. Nie chcę też sprawdzać ich nagłówków http, aby pobrać kulturę z ustawień przeglądarki.
Edytować:
Dla jasności - nie próbuję decydować, czy użyć sesji, czy nie. Jestem zadowolony z tego kawałka. Próbuję ustalić, czy najlepiej jest to zrobić w kontrolerze kultury, który ma ustawioną metodę akcji dla każdej kultury, czy też jest lepsze miejsce w potoku MVC, aby to zrobić?