-1

クライアント側をクリックして、ヘッダー情報が追加された別のサイトにリダイレクトしようとしています.onclickのクライアント側コードは次のとおりです。

function selectApp(appGUID, userId ,embedUrl)
{
    if(embedUrl==="")
    {
        var success = setAppGUID(appGUID);
        window.location.replace('AppDetail.aspx');
    }
    else
    {   
        $.ajax({
            type: "POST",
            url: embedUrl,
            contentType: "text/html",
            beforeSend: function (xhr, settings) {
                xhr.setRequestHeader("UserId", userId);
            },
            success: function (msg) {
                //actually redirect to the site
                window.location.replace(embedUrl);
            }
        });
    }  
}

サーバー側のコードembedUrl

protected void Page_Load(object sender, EventArgs e)
{
    string isSet = (String)HttpContext.Current.Session["saveUserID"];
    if (String.IsNullOrEmpty(isSet))
    {
        NameValueCollection headers = base.Request.Headers;
        for (int i = 0; i < headers.Count; i++)
        {
            if (headers.GetKey(i).Equals("UserId"))
            {
                HttpContext.Current.Session["saveUserID"] = headers.Get(i);
            }
        }
    }
    else
    {
        TextBox1.Text = HttpContext.Current.Session["saveUserID"].ToString();
    }
}

これは機能しているように見えますが、エレガントではありません。ヘッダーデータでリダイレクトする方法はありますか? (私がやっていることを)ヘッダー情報をセッション変数に保存せずに、2つの別々の部分でリダイレクトを行います。

4

1 に答える 1

-1

ページメソッドを実装し、それにデータを投稿できます。そのメソッドで現在のロジックを移動します。

次の例を参照してください。

投稿が成功すると、現在の実装のような別のページにリダイレクトできます。

編集:次のようなものを試してください:

1)コードビハインドにWebメソッドを追加します

  [WebMethod]
  public static string SaveUserId(string userId)
  {
    string sessionUserId= (string)HttpContext.Current.Session["saveUserID"];
    if (string.IsNullOrEmpty(sessionUserId))
      HttpContext.Current.Session["saveUserID"] = userId;
    else
      TextBox1.Text = sessionUserId;
  }

2)JSから呼び出す

 //Add here code before..
 $.ajax({
                url: "PageName.aspx/SaveUserId",
                data: "{'userid':" + userid + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json"
                success: function (msg) {
                    //actually redirect to the site
                    window.location.replace(embedUrl);
                }
            });

jQueryを使用したPageメソッドの呼び出しの詳細:

于 2012-10-12T16:30:23.730 に答える