ASP.NET Web Forms post back to themselveseven if you add an explicit
action attribute in the
<form> tag, ASP.NET overrides that action and posts the form to the original filename. You can work around the problem by removing the
runat="server" from the
<form> tag as shown below:
<form id="Form1" action="Second.aspx" method="post">
Note: You should be aware that if you do this, you can't use server controls in your form, only HTML Controls.
Another method is to let the page post back, but then use the Server.Transfer method to transfer control to another page in your application or on your server:
If IsPostBack
Server.Transfer("someOtherPage.aspx")
End If
You can't use
Server.Transfer to transfer control to a page running on a different server, but you can maintain all the form and querystring variables using the overload version
Server.Transfer(<page>, True). The
True parameter in that call determines whether the server should preserve the posted values.