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:
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.