質問

jqueryのを使用してセッションに値を格納する方法。 私は、次のコードを使用しています。

var Link = '<%=Session["Link"]%>';
セッションからデータを取得するには、

。逆のプロセスを実行する方法。

問題:

 I need this in my master page. so i cant use .ajax{}.

ジーサ

役に立ちましたか?

解決

あなたはおそらく HTTPハンドラのか何かを設定する必要があります同様のことは、セッション内の要求や店舗、物事を受け入れます。 Visual Studioは、ソリューション・ビューで、「追加」メニューでこのどこかにあります。 (あなたはASP.NET MVCを使用している場合は、だけではなく、一般的なハンドラの別のアクションを設定します。)

これらの値は、(などint型、文字列、)異なる種類を有することができるので、のあなたは、悪意のあるユーザーが、彼らがフィットを参照してください任意のセッションキーに突っついたくないので、あなたはおそらくセットになるでしょう各キーに何をすべきかを決定するために、分岐アップ。 (あなたが作成したことをハンドラ内)このような何かます:

string key = context.Request.QueryString["key"].ToString();
string val = context.Request.QueryString["val"].ToString();
if(key == "AshDiffuserID"){
  int ash_diffuser_id = Convert.ToInt32(val);
  Session["AshDiffuserID"] = ash_diffuser_id;
}
else if(key == "PesterchumHandle") {
  string handle = val;
  Session["PesterchumHandle"] = handle;
} else // etc...
その後、あなたはjqueryのことを通じてポストHTTPリクエストを設定する必要がありますプットあなたがそれらの「キー」と「ヴァル」のフィールドに必要な値どんなます。

$.post(
  'url/to/your/handler.ashx',
  {key: "PesterchumHandle", val: "carcinoGenetecist"}
); 

他のヒント

私は、これはちょうど簡単な修正である一方で、この問題をソートするために、私の一日を無駄にしました。新しいのsession_startイベントが解雇されるようにPageMethodの通話中に、セッションIDは、リクエストURLに渡されていません。私達はちょうど新しいセッション開始イベントが発生することができないように、pagemethodを呼び出す前に、正確な要求パスを設定する必要があります。

if ('<%= HttpContext.Current.Session.IsCookieless %>==True') {
//need to pass session id in request path
PageMethods.set_path('<%= System.Web.Configuration.WebConfigurationManager.AppSettings("WebRoot") %>(S(<%=Session.SessionID%>))/secure/PageName.aspx');
}
PageMethods.PageMethodName(param1,param2, CallSuccess, CallFailed);

あなたはjqueryのを介してサーバにAJAXポストを行う必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top