Мы делаем то же самое по ссылкам в представлении. Однако мы не приводим код в действие, а используем метод базового класса контроллера. Это действие:
public ActionResult SetCulture(string cultureCode)
{
string returnUrl = string.Empty;
if (Request != null)
{
returnUrl = Request.UrlReferrer.ToString();
//Write to the cookie
Response.Cookies.Add(new HttpCookie("Language", cultureCode));
}
if (!String.IsNullOrEmpty(returnUrl))
{
return this.Redirect(returnUrl);
}
else
{
return RedirectToAction("List");
}
}
И это метод в базовом классе контроллера:
protected override void ExecuteCore()
{
//Retrieve from cookies
HttpCookie cultureCookie = Request.Cookies["Language"];
if (cultureCookie != null)
{
string culture = cultureCookie.Value;
if (!String.IsNullOrEmpty(culture))
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(culture);
}
}
base.ExecuteCore();
}