我在我的網站上使用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名稱錯誤)。 –