Establecer la cultura en una aplicación ASP.Net MVC

¿Cuál es el mejor lugar para configurar la Cultura / UI Cultura en una aplicación MVC de ASP.net?

Actualmente tengo una clase de CultureController que se parece a esto:

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");
    }
}

y un hipervínculo para cada idioma en la página de inicio con un enlace como este:

<li><%= Html.ActionLink("French", "SetFrenchCulture", "Culture")%></li>
<li><%= Html.ActionLink("Spanish", "SetSpanishCulture", "Culture")%></li>

que funciona bien, pero creo que hay una forma más adecuada de hacerlo.

Estoy leyendo la Cultura usando el siguiente ActionFilterhttp://www.iansuttle.com/blog/post/ASPNET-MVC-Action-Filter-for-Localized-Sites.aspx. Soy un poco novato de MVC, así que no estoy seguro de que estoy configurando esto en el lugar correcto. No quiero hacerlo en el nivel web.config, tiene que basarse en la elección del usuario. Tampoco quiero comprobar sus encabezados http para obtener la cultura de la configuración de su navegador.

Editar:

Solo para ser claros, no estoy tratando de decidir si usar la sesión o no. Estoy feliz con eso poco. Lo que estoy tratando de averiguar es si es mejor hacer esto en un controlador de Cultura que tenga un método de acción para cada Cultura que se establezca, o si hay un lugar mejor en la tubería de MVC para hacer esto.

Respuestas a la pregunta(8)

Su respuesta a la pregunta