在Controller中定义一个修改Culture的方法,并在这个方法中使用Request.Headers中的AcceptLanguage进行Culture的修改,然后使用Request.Query中的returnUrl进行重定向,重定向到原本的action。
代码示例:
public class HomeController : Controller
{
public IActionResult ChangeCulture(string lang, string returnUrl)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(lang)),
new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }
);
return LocalRedirect(returnUrl);
}
public IActionResult Index()
{
return View();
}
}
在View中使用如下代码进行修改语言按钮的显示: