2011-12-22 54 views
0

在asp.net應用程序中,我有一個表單,並且在用戶單擊按鈕後,我使用Response.Redirect轉到另一個頁面。但在第二頁中,Page_Load事件不會觸發。我試圖設置AutoEventWireup =「false。我也嘗試清除瀏覽器的緩存,最後我試圖使用this.Load事件處理程序,但結果是一樣的。推進和聖誕快樂!Page_Load沒有在ASP.NET中的Response.Redirect之後觸發ASP.NET

/添加的代碼/

protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     CreateXML(); 
     PostToWebApplicationB(); 
     Response.Redirect(url); 
    } 

/這是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(); 
      } 
     } 
    } 

/指令目標頁/

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

你能告訴我們你重定向代碼和[指令](http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx)的目標網頁? – 2011-12-22 22:08:42

+0

剛剛添加了代碼 – 2011-12-22 22:19:38

+0

爲什麼不''Server.Transfer'? – 2011-12-22 22:28:25

回答

2

要麼設置AutoEventWireup = 「true」,並確保你的Page_Load(object sender, EventArgs e)簽名相匹配的頁面上的一個方法

- 或 -

保持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事件不會觸發嗎? – 2011-12-22 22:33:01

+0

使用fiddler檢查您的http流量。看看你是否確實收到302迴應等等 – Keith 2011-12-22 22:34:23

相關問題