2

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

var Link = '<%=Session["Link"]%>';

セッションからデータを取得します。逆のプロセスを行う方法。

問題:

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

ジーサ

4

3 に答える 3

5

おそらく、リクエストを受け入れてセッションに保存するHTTPハンドラーなどを設定する必要があります。Visual Studioには、ソリューションビューの[追加]メニューのどこかにこれがあります。(ASP.NET MVCを使用している場合は、汎用ハンドラーの代わりに別のアクションを設定するだけです。)

これらの値はさまざまなタイプ(int、stringなど)である可能性があり、悪意のあるユーザーが適切と思われるセッションキーを突っ込んでほしくないため、ブランチを設定してそれぞれをどう処理するかを決定する必要があります。鍵。このようなもの(作成したハンドラー内):

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を介してpost HTTPリクエストを設定し、必要な値をこれらの「key」フィールドと「val」フィールドに入力する必要があります。

$.post(
  'url/to/your/handler.ashx',
  {key: "PesterchumHandle", val: "carcinoGenetecist"}
); 
于 2010-02-25T06:29:56.087 に答える
1

これは簡単な修正ですが、私はこの問題を分類するために1日を無駄にしました。PageMethodの呼び出し中に、セッションIDがリクエストURLとともに渡されていないため、新しいsession_startイベントが発生します。新しいセッション開始イベントを発生させないように、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);
于 2012-08-28T16:05:54.100 に答える
0

jqueryを介してサーバーにajax投稿を行う必要があります。

于 2010-02-25T06:37:21.600 に答える