ASP.NETクロスページ転送


 、       

                                          。 Web             ,             ,                   。    ,                 :          ,             。

   ASP.NET         。            Response.Redirect         :

   protected void Redirect_Click(object sender, EventArgs e) 
  {
      Response.Redirect("menu.aspx"); 
  }

                  GET  ,                        。                       。       :

   protected void Redirect_Click(object sender, EventArgs e) 
  {
            Response.Redirect("menu.aspx?userName=" + UserName.Text)); 
      }

                       Response.Redirect     URL。                。
      protected void Page_Load(object sender, EventArgs e) 
  {
        string userName = Request["userName"]; 
      }

       、       

                    ,                ,           Web                     。                 ,        Response.Redirect     ,                 ,                  。              ,         ,    URL         URL,                        。  ,       ,     ,            。

  Server.Transfer            HttpContext。  ,            。      FormsCollection                。  ,              ,         :  URL   Boolean    ,                  Form。        :

   Server.Transfer("Menu.aspx",true);
    ,             txtUserName Textbox         :
   object obj = Request.Form["txtUserName"];

   、Response.Redirect Server.Transfer   

    Response.Redirect             ,  ,                        。  ,      ,  redirect                  。    ,Server.Transfer     ,             Web        。     ,       Server.Transfer             。                  ,     Response.Redirect  。

   、      

   ASP.NET 2.0 ,        IbuttonControl        WebForm,         。 Response.Redirect  ,                  ,     Server.Transfer,               。         ,          PostBackUrl       URL。

   、       

             ASP.NET2.0        。         ,     Web ,    Web ,      Web 。                       。               PostBackUrl  ,     ,     System.Web.UI.WebControls.IbuttonControl   Web            。            。

   PostBackUrl="~/target.aspx" text = "Post to a target page"/>
       PostBackUrl   ,ASP.NET                WebForm_DoPostBackWithOptions JavaScript  ,   Html    :

   οnclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSubmit", "", false, "","Target.aspx", false, false))" id="btnSubmit" />

       html    ,        ,        URL(Target.aspx),    URL。

 、               

  ASP.NET2.0      PreviousPage     ,                              。     ,                   ,      null(  null          )。              PreviousPage             ,ASP.NET            。    ProcessChildRequest     。  ,     Page_Init  、Page_Load               。

    ,               ,       IsCrossPostBack                 ,        true,                       。              (      、Response.Redirect    Server.Transfer),       false。                。

 if ( PreviousPage.IsCrossPagePostBack) 
  {
      //    
  }
//******************************************
    PreviousPage   Server.Transfer            。 ASP.NET2.0 ,       Server.Transfer     PreviousPage                 ,    :
*******************************************//
   { 
     Server.Transfer("menu.aspx"); 
   }

  protected void Redirect_Click(object sender, EventArgs e)

  //               Web     ,    :

   protected void Page_Load(object sender, EventArgs e) 
  {
    if (PreviousPage != null)
    {
       TextBox txtBox = (TextBox)
       PreviousPage.FindControl("txtUserName"); 
       if (textBox != null)
       string userName = textBox.Text; 
       //        
    }
  }

               txtUserName     TextBox  ,          。

 、  PreviousPageType

  PreviousPageType                       ,                               。    :

  < asp:Textbox ID="txtUserName" Runat="server" />
  < asp:Textbox ID="txtPassword" Runat="server" />
     < asp:Button ID="Submit" Runat="server" Text="Login"PostBackUrl="Menu.aspx" />

                    “Menu.asp”    。                      :

   、      

           ,ASP.NET2.0       __POSTBACK     ,                  --           ,           PostBackUrl         。       __POSTBACK                 。    :

   if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack && 
  PreviousPage.IsValid)
  {
       TextBox txtBox = PreviousPage.FindControl("txtUserName"); 
      Response.Write(txtBox.Text); 
    }

                PreviousPage     null     。     ,                   ,  PreviousPage     null。             ,IsCrossPagePostBack    true。

            , ASP.NET2.0          ,                      ,                      。