What is the best place to set the Culture/UI Culture in an ASP.net MVC app
Currently I have a CultureController class which looks like this:
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");
}
}
and a hyperlink for each language on the homepage with a link such as this
<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>
Which works fine but I am thinking there is a more appropriate way to do this
I am reading the Culture using the following ActionFilter http://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx
I am a bit of an MVC noob so am not co0nfident I am setting this in the correct place
I dont want to do it at the web.config level, it has to be based on a users choice.
I also dont want to check their http-headers to get the culture from their browser settings
Edit:
Just to be clear - I am not trying to deciede whether to use session or not. I am happy with that bit.
What I am trying to work out is if it is best to do this in a Culture controller that has an action method for each Culture to be set.
Or is there is a better place in the MVC pipeline to do this
anyone any ideas?