我正在尝试使用 .NET MVC Web 应用程序设置语言
这是我的 SetCulture 函数;
public ActionResult SetCulture( string lan ) {
string Culture = Request.QueryString.Get( "lan" );
// Validate input
Culture = CultureHelper.GetImplementedCulture( Culture );
// Save culture in a cookie
HttpCookie cookie = Request.Cookies[ "_culture" ];
if ( cookie != null )
cookie.Value = Culture; // update cookie value
else {
cookie = new HttpCookie( "_culture" );
cookie.Value = Culture;
cookie.Expires = DateTime.Now.AddYears( 1 );
}
Response.Cookies.Add( cookie );
//Session["_culture"] = Culture;
return RedirectToAction( "../Home/Index" );
}
这是第一个问题;
当页面 http://localhost:55616/Home/Index
打开时,可以更改语言。
但是,当 http://localhost:55616
打开时,它会自动刷新,但不会更改语言。
这里是第二个问题;
可以看出,我将页面重定向到 ../Home/Index
页面。但是我需要重定向到页面本身,例如,当它在../Home/UserSettings
上时,它会在更改后为../Home/UserSettings
语言。
最佳答案
答案在这里
public ActionResult SetCulture( string lan ) {
string Culture = Request.QueryString.Get( "lan" );
var returnUrl = Request.UrlReferrer;
// Validate input
Culture = CultureHelper.GetImplementedCulture( Culture );
// Save culture in a cookie
HttpCookie cookie = Request.Cookies[ "_culture" ];
if ( cookie != null )
cookie.Value = Culture; // update cookie value
else {
cookie = new HttpCookie( "_culture" );
cookie.Value = Culture;
cookie.Expires = DateTime.Now.AddYears( 1 );
}
Response.Cookies.Add( cookie );
//Session["_culture"] = Culture;
return Redirect( returnUrl.OriginalString );
}
请求.UrlReferrer;返回发送请求的页面。
关于c# - .NET 语言配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41056438/