Quel est le meilleur endroit pour définir la culture / culture de l'interface utilisateur dans une application ASP.net MVC
Actuellement, j'ai une classe CultureController qui ressemble à ceci:
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");
}
}
et un lien hypertexte pour chaque langue sur la page d'accueil avec un lien tel que celui-ci:
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
qui fonctionne bien mais je pense qu'il y a une manière plus appropriée de faire ceci.
Je lis la culture en utilisant le ActionFilter suivant http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx . Je suis un peu un MVC noob, donc je ne suis pas sûr que je mets cela au bon endroit. Je ne veux pas le faire au niveau de web.config, cela doit être basé sur le choix d'un utilisateur. Je ne veux pas non plus vérifier leurs en-têtes http pour obtenir la culture à partir des paramètres de leur navigateur.
Éditer:
Juste pour être clair - je n'essaye pas de décider d'utiliser la session ou non. Je suis content de ça. Ce que j'essaie de déterminer, c'est s'il est préférable de le faire dans un contrôleur de culture qui a une méthode d'action pour chaque culture à définir, ou existe-t-il un meilleur endroit dans le pipeline MVC pour le faire?