Qual è il posto migliore per impostare la cultura / cultura dell'interfaccia utente in un'app ASP.net MVC
Attualmente ho una classe CultureController simile a questa:
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");
}
}
e un collegamento ipertestuale per ogni lingua sulla home page con un collegamento come questo:
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
che funziona bene, ma penso che ci sia un modo più appropriato per farlo.
Sto leggendo la cultura utilizzando il seguente ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx . Sono un po 'un noob MVC quindi non sono sicuro di averlo impostato nel posto giusto. Non voglio farlo a livello di web.config, deve essere basato sulla scelta di un utente. Inoltre, non voglio controllare i loro header http per ottenere la cultura dalle impostazioni del browser.
Modificare:
Giusto per essere chiari, non sto cercando di decidere se utilizzare o meno la sessione. Sono contento di quel bit. Quello che sto cercando di capire è se è meglio farlo in un controller di cultura che ha un metodo di azione per ogni cultura da impostare, oppure c'è un posto migliore nella pipeline MVC per farlo?