2011-12-22 15 views
0

asp.netアプリケーションではフォームがあり、ユーザーがボタンをクリックするとResponse.Redirectを使用して別のページに移動します。しかし、2ページ目でPage_Loadイベントは発生していません。私はAutoEventWireup = "falseを設定しようとしました。また、ブラウザのキャッシュをクリアしようとしましたが、最後にthis.Loadイベントハンドラを使用しようとしましたが、結果は同じです。事前とメリークリスマス!Page_LoadはASP.NETのResponse.Redirectの後に起動しません。

/これはPostToWebApplicationB方法/

private void PostToWebApplicationB() 
    { 
     try 
     { 
      request = WebRequest.Create(url); 
      request.Method = "POST"; 
      request.ContentType = "text/xml"; 

      StreamWriter writer = new StreamWriter(request.GetRequestStream()); 
      writer.WriteLine(this.GetTextFromXmlFile(filepath)); 
      writer.Close(); 
      response = request.GetResponse(); 
     } 
     catch (Exception ex) 
     { 
      errorLabel.Text = ex.Message; 
     } 
     finally 
     { 
      if (request != null) 
      { 
       request.GetRequestStream().Close(); 
      } 
      if (response != null) 
      { 
       response.GetResponseStream().Close(); 
      } 
     } 
    } 
01で
protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     CreateXML(); 
     PostToWebApplicationB(); 
     Response.Redirect(url); 
    } 

//

コードを追加しました

/先のページの指令/

<%@ Page Language="C#" AutoEventWireup="false" CodeBehind="Intermediate.aspx.cs" 
Inherits="WebApplicationB.Intermediate" %> 
+0

あなたは私たちのあなたがリダイレクトコードと[指示](http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx)を表示できますターゲットページ? –

+0

コードを追加しました –

+0

「Server.Transfer」はなぜですか? –

答えて

2

どちらかが= "true" をAutoEventWireup属性を設定し、Page_Load(object sender, EventArgs e)署名

-OR-

に一致するページ上のメソッドを持っていることを確認してください

AutoEventWireup = "false"にしておきますが、OnLoadイベントを手動でメソッドにバインドしてください。

C#例:

override protected void OnInit(EventArgs e) 
{ 
    this.Load += new System.EventHandler(this.Page_Load); 
} 
+0

aspxファイルでは、私はAutoEventWireup = "true"を持ち、もちろんaspx.csではPage_Loadハンドラを持っています。ハンドラがまだ発砲していない。上記のコードでわかるように、後でリダイレクトするページに私のWebリクエストを作成します。これがPage_Loadイベントに影響しないと思いますか? –

+0

httpトラフィックを確認するには、fiddlerを使用します。実際に302の応答を受け取っているかどうかを確認してください。 – Keith

関連する問題