在我看来,文化价值是正确的。但是在我的ajax HttpPost方法中,这种文化是错误的。我的目标是检查URL lang是否为空检查cookie是否再次为空我从客户端获取语言(英语,德语,土耳其语),如果客户端还有其他lang,则默认为土耳其语。我尝试用例子来解释。我的框架是4.7.2
这是我的OnActionExecuting:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.HttpContext.Request.HttpMethod == "GET")
{
var domainLang = RouteData.Values["lang"] as string;
if (!string.IsNullOrEmpty(domainLang) && !string.IsNullOrWhiteSpace(domainLang))
{
//CurrentInfo is my class it is getting values from DB for once
bool avaibleLang = CurrentInfo.AvailableLanguages.Count(x => x.DilKey == domainLang) > 0;
if (avaibleLang)
{
var langCookie = CurrentInfo.CurrentLang;
if (domainLang != langCookie.DilKey)
{
ClientCookieManagement.CreateCookie(CookieEnum.Language.GetStringValue(), domainLang, 7);
}
}
else
{
domainLang = CurrentInfo.CurrentLang.DilKey;
}
}
Thread.CurrentThread.CurrentUICulture = new CultureInfo(domainLang ?? CurrentInfo.CurrentLang.DilKey);
}
base.OnActionExecuting(filterContext);
}
我查看了自己的文化,这是正确的。
@Thread.CurrentThread.CurrentUICulture
@Thread.CurrentThread.CurrentCulture
但是,如果我使用ajax提交或发布内容,则文化是错误的
CultureInfo.CurrentUICulture
我的网络配置
<globalization culture="tr-TR" -uiCulture="tr-TR"/> Default lang is TR
问题:
如果我提交或其他任何内容,我需要在控制器中获取正确的值。我在做什么错了?