Asp.net mvc 5 在运行时以编程方式更改区域性(ASP.NET MVC)

Asp.net mvc 5 在运行时以编程方式更改区域性(ASP.NET MVC),asp.net-mvc-5,Asp.net Mvc 5,如何以编程方式更改(覆盖)当前区域性(在web.config中设置)? 听起来很简单,但尝试了几个小时不同的代码却没有任何结果。让我们从这个开始: 选择1 @Html.ActionLink("French", "SetFrenchCulture", "Culture") @Html.ActionLink("English", "SetEnglishCulture", "Culture") ... public class CultureController : Co

如何以编程方式更改(覆盖)当前区域性(在web.config中设置)? 听起来很简单,但尝试了几个小时不同的代码却没有任何结果。让我们从这个开始: 选择1

   @Html.ActionLink("French", "SetFrenchCulture", "Culture")
      @Html.ActionLink("English", "SetEnglishCulture", "Culture")
...
      public class CultureController : Controller
        {
            public ActionResult SetEnglishCulture()
            {
                HttpContext.Session["culture"] = "en-US";
                return RedirectToAction("Index", "Home");
            }

            public ActionResult SetFrenchCulture()
            {
                HttpContext.Session["culture"] = "fr-FR";
                return RedirectToAction("Index", "Home");
            }
        }
选择2

  public void SetLanguage(string lang)
        {
            try
            {

                var cultureInfo = new CultureInfo(lang);
                Thread.CurrentThread.CurrentUICulture = cultureInfo;
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureInfo.Name);
                HttpCookie langCookie = new HttpCookie("culture", lang);
                langCookie.Expires = DateTime.Now.AddYears(1);
                HttpContext.Current.Response.Cookies.Add(langCookie);
            }
            catch (Exception) { }
        }
使用web.config进行切换非常有效。谢谢

答案如下:

工作得很好!!mvc中的文化非常特殊