【发布时间】:2015-01-14 11:41:03
【问题描述】:
我试图让用户设置他们的默认语言。当用户从下拉菜单中选择一种语言并点击“保存”时,页面会重新加载,谷歌翻译 cookie 也会更新——因此网站会被翻译成用户选择的语言。在 FF 和 IE 上,用户可以使用下拉菜单设置语言,然后将其更改为另一种语言。然而,在 Chrome 上,用户可以在第一次设置语言,但随后无法将其更改为其他语言。
这个问题只出现在测试和 beta 站点上——我可以在我的本地主机上更新语言。
我正在使用 Chrome 版本 38 进行测试。
这是第一次设置 Cookie 的代码,当用户点击保存时也会更新它。
public void ImplementUserPreferences(UserPreferences prefs)
{
//examples of prefs.GoogleTranslateDefaultLanguage:
// af, sq, ar, sp, is....
HttpCookie languageCookie = new HttpCookie("googtrans", "/en/" + prefs.GoogleTranslateDefaultLanguage);
AddOrSetCookie(languageCookie, "googtrans");
}
private void AddOrSetCookie(HttpCookie cookie, String cookieName)
{
if (System.Web.HttpContext.Current.Request.Cookies[cookieName] == null)
{
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);
}
else
{
System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
}
}
【问题讨论】:
-
您是否尝试过
System.Web.HttpContext.Current.Response.Cookies[cookieName] = cookie或...Cookies[cookieName].Value = cookie.Value,或者删除 cookie 并重新添加新值? -
是的,试过了。没用。
-
如果保存下载一个cookie,他们将不得不清除它们。或者您可以将它们设置为快速刷新,但这会伤害第一次正确使用它的用户。
标签: c# asp.net google-chrome cookies google-translate