更改区域性适用于本地,但不适用于IIS

时间:2019-08-01 23:55:26

标签: c# asp.net iis

我正在使用httppost和cookie更改带有列表的cultureinfo,它在我的本地测试中效果很好,但是当我将其上传到IIS时,它不起作用。

 [HttpPost]
        public  IActionResult ChangeLanguage(string language , string returnUrl)
        {
            var cultureInfo = new CultureInfo(language);
 CultureInfo.CurrentCulture.ClearCachedData();
            if(CultureInfo.DefaultThreadCurrentCulture != null) CultureInfo.DefaultThreadCurrentCulture.ClearCachedData();
            if(CultureInfo.DefaultThreadCurrentUICulture != null) CultureInfo.DefaultThreadCurrentUICulture.ClearCachedData();
            Response.Cookies.Append(
                CookieRequestCultureProvider.DefaultCookieName,
                CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(language)),
                new Microsoft.AspNetCore.Http.CookieOptions { Expires = DateTimeOffset.UtcNow.AddDays(1)}

                );
            CultureInfo.CurrentCulture.ClearCachedData();
            CultureInfo.CurrentCulture = cultureInfo;
            return LocalRedirect(returnUrl);
        }

HTML


    <ul class="menulist dropdown-menu">


        <form asp-action="ChangeLanguage" asp-controller="Home" asp-route-returnUrl="@Context.Request.Path" method="post" id="langform">
            <input type="text" id="langinput" hidden name="language" value="" />
            <li onclick="SubmitAndChange('tr')" class="lang-li"><div class="flag flag-tr"></div> Türkçe</li>
            <li onclick="SubmitAndChange('en')" class="lang-li"><div class="flag flag-us"></div> English</li>

        </form>

    </ul>

JavaScript


      function SubmitAndChange(lang) {
            $("#langinput").val(lang);
            $("#langform").submit();
        }

0 个答案:

没有答案