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>
コード ビハインド ファイル:-
[WebMethod]
public static string SetValue(string val)
{
HttpContext.Current.Session["Status"] = val;
return HttpContext.Current.Session["Status"].ToString();
}
サーバー側のセッションについて話している場合、それは実際にはサーバー側に依存します。
通常はCookieを介してセッションIDを割り当てる必要があります....
つまり、たとえば、必要なセッションIDを指定して、サーバー内の指定されたURLにajaxリクエストを行うことができます。その ajax リクエストは、Cookie を介してセッションを割り当てます。
別のアイデアは、特定のセッション ID を持つ JavaScript を使用して、クライアント側で Cookie を積極的に作成することです (これもサーバーがサポートしている場合)。
$.cookie("SESSION", "session-id"); // Using jQuery
私は前にそれを試したことはありませんが。
Cookie の名前はサーバー テクノロジによって異なることに注意してください (Tomcat はJSESSIONID
デフォルトで[link]、ASP.NET はASP.NET_SessionId
[link]で、「注」の下にあります)。
実際、あなたのケースをカバーするMSDNのチュートリアルがあります。Web サービスをクライアント スクリプトに公開するで説明されています。「ASP.NET Web ページでの静的メソッドの呼び出し」セクションを参照してください。
あなたがしなければならないのは、あなたのコントロールにEnablePageMethods
プロパティを設定し、コードビハインドで宣言されたオブジェクト呼び出し静的メソッド(属性で装飾する必要があります)を使用することだけです。True
ScriptManager
PageMethods
WebMethod
XmlHttpRequest を介してデータを送信することにより、サーバー セッションにデータを転送できます。このデータを受け取るページまたはハンドラーは、それをサーバー セッション データ コレクションに入れることができます。