我有一個bilangual MVC 3應用程序。我使用下拉列表通過將下拉列表的值保存到cookie和會話中來更改語言。問題是當我釋放它時,它只能在IE中使用。以下是我的代碼。注意:該網站將被重新加載,當我關閉Firefox或鉻並重新啓動它時,語言已被更改,但沒有發生,如果我不關閉FF或鉻。非常感謝您的幫助。 我已經使用$ .get,$ .post每種組合。jquery ajax作品只適用於IE
JavaScript代碼:
$(function() {
$('#languagesDiv select').change(function() {
var myvalue = $(this).val();
$.ajax({
type: "POST",
dataType: "xml",
url: "/Language/SetLanguage",
data: { code: myvalue },
success: function (data) {
},
error: function (xhr, textStatus, errorThrown) {
}
});
// @* $.post('@Url.Action("SetLanguage", "Language")', { code: $(this).val() },
// function (result) {
// }
// );*@
var myDate = new Date();
myDate.setDate(myDate.getDate() + 21);
$.cookie('MyData', $(this).val(), { path: '/', expires: myDate });
//window.location.reload();
window.location.href = '/News/Index';
});
});
C#代碼:
//tested with and without [httppost]
public void SetLanguage(string code)
{
if (Session["MyCulture"] != null && Convert.ToString(Session["MyCulture"]) != code)
{
Session["MyCulture"] = code;
HttpCookie aCookie = Request.Cookies["MyData"]; // new HttpCookie("MyData");
aCookie.Value = code;
//HttpCookie aCookie = Request.Cookies["LangCookie"];
aCookie.Expires = System.DateTime.Now.AddDays(21);
Response.Cookies.Add(aCookie);
//Response.AppendCookie(aCookie);
}
//return RedirectToAction("Index", "News");
}
再次感謝您。
請格式化您的問題。 –