Quel est le meilleur endroit pour définir la culture/la culture UI 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 hyperlien 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>
ce qui fonctionne bien, mais je pense qu'il y a un moyen plus approprié de le faire.
Je lis la Culture en utilisant l'ActionFilter suivant http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx . Je suis un peu un noob MVC donc je ne suis pas sûr que j'ai réglé cela au bon endroit. Je ne veux pas le faire au niveau du web.config, cela doit être basé sur le choix de l'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.
Editar:
Pour être clair, je n'essaie pas de décider s'il faut utiliser la session ou non. Ce point me convient parfaitement. Ce que j'essaie de déterminer, c'est s'il est préférable de faire cela dans un contrôleur de culture qui a une méthode d'action pour chaque culture à définir, ou s'il y a un meilleur endroit dans le pipeline MVC pour faire cela ?