Я работаю над сайтом asp.net, который имеет многоязычную функциональность. В настоящее время мой код работает с переключателем языка и отображает содержимое формы на выбранном языке, но если пользователь решит переключить язык после частичного заполнения формы, мой код обновляет страницу, и данные формы теряются в процессе.
Я попытался установить измененный язык, используя cookie.
Код языкового контроллера -
public ActionResult Change(String Language)
{
if(Language != null)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Language);
}
HttpCookie cookie = new HttpCookie("Language");
cookie.Value = Language;
Response.Cookies.Add(cookie);
return View("Index");
}
Индексный просмотр -
<li>@Html.ActionLink("English", "Change", "Language", new { Language = "en"}, null)</li>
<li>@Html.ActionLink("Françe", "Change", "Language", new { Language = "fr" }, null)</li>
<li>@Html.ActionLink("spanish", "Change", "Language", new { Language = "es"}, null)</li>
Global.asax.cs
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["Language"];
if(cookie != null && cookie.Value != null)
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cookie.Value);
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(cookie.Value);
}
else
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
}
}
Можно ли переключать язык и содержимое страницы без обновления страницы?