クッキーに言語を保存する必要があります。クッキーから言語と読み込み言語を変更する 以下のコードはうまく機能しますが、どこにどのように保存できますかASP.NET MVCクッキーに複数の言語を保存する方法
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";
}
}
}
}
そして、ここでどのようにユーザー:
routes.MapRoute(
name: "DefaultLocalized",
url: "{language}/{controller}/{action}/{id}",
defaults: new
{
controller = "Home",
action = "Index",
id = UrlParameter.Optional,
}
);
ActionFilterAttribute:クッキーにとクッキー
から読み取るこれは敗走です言語を変更:Asp.Netで
<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この回答には、あなたの言語のクッキーの追加と読み取り方法に関する情報が含まれています。 – kkakkurt
@kkakkurt、ありがとうございます。私は上記の解決策を試した。残念ながら私は私のシナリオではうまくいきませんでした。私はちょうど私のシナリオと一致するクッキーの言語を保存して読む必要があります。ありがとうございました – Alex