我使用Server.Transfer
在单击按钮时加载另一个页面的内容。这就像预期的那样工作,url保持不变。但是,如果我试图在点击第二个页面中的按钮时加载第三个页面,则url将更改为第二个页面的url。我希望它保留第一页的url。
的例子:
-
Page1.aspx
负载。- Url:
.../Page1.aspx
- 内容:
Page1.aspx
点击 - Url:
-
Server.Transfer("~/Page2.aspx")
on按钮。- Url:
.../Page1.aspx
- 目录:
Page2.aspx
点击 - Url:
-
Server.Transfer("~/Page3.aspx")
on按钮- Url:
.../Page2.aspx
- 目录:
Page3.aspx
- Url:
为什么url在第三步改变?
当您调用Server.Transfer()
时,第1页的执行被停止,而在同一个HTTP请求中执行第2页。然后执行第二页(Page2.aspx)的方式与直接对其URL进行任何正常请求的方式相同,因此表单的操作被设置为自己的URL(尽管从Server.Transfer()
调用)。
如果不是这种情况,那么当表单提交时,它将发送到Page1。Aspx(如您所期望的),但此页面不一定包含相同的控件并能够处理请求。
这个可能有帮助:
Response.Redirect("~/page.aspx",false)