HttpContext.Actuel.Session null dans MVC 3

J'ai un bilingue MVC 3 application, j'utilise des cookies de session et de sauver la "Culture" dans Session_start méthode à l'intérieur d' Global.aspx.cs fichier, mais direct après, la session est null.

C'est mon code:

    protected void Session_Start(object sender, EventArgs e)
    {
        HttpCookie aCookie = Request.Cookies["MyData"];

        if (aCookie == null)
        {
            Session["MyCulture"] = "de-DE";
            aCookie = new HttpCookie("MyData");
            //aCookie.Value = Convert.ToString(Session["MyCulture"]);
            aCookie["MyLang"] = "de-DE";
            aCookie.Expires = System.DateTime.Now.AddDays(21);
            Response.Cookies.Add(aCookie);
        }
        else
        {
            string s = aCookie["MyLang"];
            HttpContext.Current.Session["MyCulture"] = aCookie["MyLang"];
        }
 }

et la deuxième fois, il va dans la "clause else" parce que le cookie existe, à l'intérieur de mon Filtre, lorsqu'il tente de définir la culture, Session["MyCulture"] est null.

   public void OnActionExecuting(ActionExecutingContext filterContext)
    {

        System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(HttpContext.Current.Session["MyCulture"].ToString());
        System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(HttpContext.Current.Session["MyCulture"].ToString());
    }
Liés à la question avec la réponse correcte: l'Appel de la Session avant toute Action de Contrôleur est exécuté en MVC @Darin déjà posté cette solution juste à l'ajouter à la référence.

OriginalL'auteur user217648 | 2011-10-09