在Asp.Net Pages中,我希望会话或视图状态(或其他任何东西)在刷新页面后保留该值?可能吗? 我想使用jQuery或javaScript在ClientSide中设置它们。 我无法在网上找到任何完整的答案
更新 其中一个答案是这样的:
这是用于设置会话的$ .ajax调用
function setSession(dayrange, startDate, endDate) {
var d = "{dayrange: '" + dayrange + "',startDate: '" + startDate + "',endDate:'" + endDate + " }";
$.ajax({
type: "POST",
url: "dateTimePicker.aspx/SetSession",
data: d,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
//alert(msg.d);
if (msg.d == "Success") {
alert("set ");
location.href = "dateTimePicker.aspx";
}
},
failure: function (response) {
alert(response.d);
}
});
}
这是服务器端的代码:
[WebMethod(EnableSession = true)]
public static void SetSession(string dayrange, string startDate, string endDate)
{
HttpContext.Current.Session["dayrange"] = dayrange;
HttpContext.Current.Session["startDate"] = startDate;
HttpContext.Current.Session["endDate"] = endDate;
}
这段代码的问题是什么?因为它没有进入server_side方法(SetSession)
答案 0 :(得分:0)
像这样更改您的数据
var d=JSON.stringify({dayrange:dayrange,startDate:startDate,endDate:endDate});
data:d
有一种格式可以将数据传递给ajax调用。参数的名称和值应该是单引号,例如'dayrange':'dayrangeValue'
,但是如果你按照上面的方式对数据进行字符串化,则不需要这样做。
答案 1 :(得分:0)
稍微更改数据,如下所示
data:"{'dayrange': '" + dayrange + "','startDate': '" + startDate + "','endDate':'" + endDate + "' }",