我需要存儲的語言cookie時使用改變了語言和閱讀餅乾 語言下面的代碼的偉大工程,但我不知道在哪裏,我怎麼能存儲的語言在餅乾和曲奇從ASP.NET MVC如何保存在餅乾多語言
讀這是潰敗:
routes.MapRoute(
name: "DefaultLocalized",
url: "{language}/{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
}
);
的ActionFilterAttribute:
public class EnableMultiLanguage : ActionFilterAttribute
{
public EnableMultiLanguage()
{
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string language = (string)filterContext.RouteData.Values["language"];
if (!string.IsNullOrEmpty(language))
{
var cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(x => x.Name == language);
if (cultureInfo == null)
{
cultureInfo = new CultureInfo("en-US");
}
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
filterContext.RouteData.Values["language"] = cultureInfo.Name;
}
else
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
filterContext.RouteData.Values["language"] = "en-US";
}
}
}
}
在這裏,用戶如何改變語言:
<li>@Html.ActionLink("English", ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "en-US" }, null)</li>
<li>@Html.ActionLink("French", ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(),new { language = "fr-FR" },null)</li>
http://stackoverflow.com/a/37458723/3401842此答案包含有關如何爲您的語言添加和讀取cookie的信息。 – kkakkurt
@kkakkurt,謝謝你的幫助。我試着提到的解決方案。不幸的是我沒有與我的情況一起工作。我只需要在與我的場景匹配的Cookie中保存並閱讀語言。謝謝 – Alex