저는 양방향 MVC 3 응용 프로그램을 가지고 있습니다. 드롭 다운 목록을 사용하여 드롭 다운 목록의 값을 쿠키 및 세션에 저장하여 언어를 변경합니다. 문제는 내가 그것을 릴리스 할 때, 그것은 IE에서만 작동합니다. 다음은 내 코드입니다. 참고 사항 : 사이트가 다시로드되고 Firefox 또는 Chrome을 닫고 Reponed했을 때 언어가 변경되었지만 FF 나 Chrome을 닫지 않으면 아무 일도 일어나지 않습니다. 당신의 도움을 주셔서 대단히 감사합니다. 나는 모든 종류의 조합을 $ .get, $. post 사용했습니다.jquery ajax 작품은 IE에서만 작동합니다
자바 스크립트 코드 :
$(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");
}
이 다시 한번 감사드립니다.
질문의 형식을 올바르게 지정하십시오. –