我在我的网站上使用asp.net文化来显示不同语言的网站,即荷兰语(nl)和法语(fr)。该网站有一个按钮,通过将网站的网址添加到?lang = nl来将网站更改为另一种语言。当您更改语言时,会保存一个cookie,以便下次访问该语言。cookie无法读取
由于某种原因,网站不会看到cookie。 cookie在那里,并发送到服务器,我检查与提琴手。有时它的值为空,有时它是空字符串。
这是我在BasePage类使用的代码:
protected override void InitializeCulture()
{
if (!Page.IsPostBack)
{
string cookieLang = "";
try
{
cookieLang = HttpContext.Current.Request.Cookies["UserSettings"]["lang"];
}
catch (Exception e)
{
Response.Write(string.Format("<!-- {0} -->", e.Message));
}
if (!string.IsNullOrEmpty(Request.QueryString["lang"]))
{
cookieLang = Request.QueryString["lang"].ToLower();
}
if (!string.IsNullOrEmpty(cookieLang))
{
string selectedCulture = cookieLang == "fr" ? "fr-BE" : "nl-BE";
this.Lang = cookieLang;
UICulture = selectedCulture;
Culture = selectedCulture;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedCulture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedCulture);
Response.Cookies["UserSettings"]["lang"]= Lang;
Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(7);
}
base.InitializeCulture();
}
}
谁能告诉我什么,我做错了什么?
编辑: 我忘了告诉,这个代码工作正常,当我测试它在我的本地PC,但在服务器上部署时,它不能正常工作。
我确定订单是正确的。您的代码会打破整个页面。 – Jerodev
我的代码存在错误(我在最后设置的cookie名称错误)。 –