有没有办法使用javascript分配会话值
我可以从会话中检索值,但分配不起作用
var TempSession = '<%= Convert.ToInt32(Session["Status"]) %>';
if(TempSession ==6)
{
alert(TempSession );
TempSession =1;
}
有没有办法使用javascript分配会话值
我可以从会话中检索值,但分配不起作用
var TempSession = '<%= Convert.ToInt32(Session["Status"]) %>';
if(TempSession ==6)
{
alert(TempSession );
TempSession =1;
}
JS:-
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script>
<script type="text/javascript">
var TempSession = '<%= Convert.ToInt32(Session["Status"]) %>';
if (TempSession == 6) {
alert(TempSession);
$.ajax({
type: 'POST',
url: 'WebForm1.aspx/SetValue',
data: '{ val:1 }',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (msg) {
alert("New Session value is " + msg.d);
}
});
}
</script>
In your code behind file:-
[WebMethod]
public static string SetValue(string val)
{
HttpContext.Current.Session["Status"] = val;
return HttpContext.Current.Session["Status"].ToString();
}
您可以通过 XmlHttpRequest 将数据发送到服务器会话。接收此数据的页面或处理程序可以将其放入服务器会话数据集合中。
如果您在谈论服务器端会话,那么它实际上取决于服务器端。
它应该为您分配一个会话 id,通常通过 cookie....
这意味着您可以例如向服务器中的指定 url 发出 ajax 请求,指定所需的会话 id。然后,该 ajax 请求将通过 cookie 分配会话。
另一个想法是在客户端使用具有特定会话 ID 的 JavaScript 主动创建一个 cookie(同样,如果服务器支持),即
$.cookie("SESSION", "session-id"); // Using jQuery
虽然我以前从未尝试过。
请注意,cookie 的名称取决于您的服务器技术(TomcatJSESSIONID
默认为[link],ASP.NET 为ASP.NET_SessionId
[link],在“Note”下)。
实际上,在 MSDN 上有一个涵盖您案例的教程。在向客户端脚本公开 Web 服务中对此进行了描述,请参阅“在 ASP.NET 网页中调用静态方法”部分。
您所要做的就是在您的控件上设置EnablePageMethods
属性,然后使用在后面的代码中声明的对象调用静态方法(它应该用属性装饰)。True
ScriptManager
PageMethods
WebMethod