为什么连续呼叫服务器.传输更改url



我使用Server.Transfer在单击按钮时加载另一个页面的内容。这就像预期的那样工作,url保持不变。但是,如果我试图在点击第二个页面中的按钮时加载第三个页面,则url将更改为第二个页面的url。我希望它保留第一页的url。

的例子:

  1. Page1.aspx负载。
    • Url: .../Page1.aspx
    • 内容:Page1.aspx
  2. 点击
  3. Server.Transfer("~/Page2.aspx") on按钮。
    • Url: .../Page1.aspx
    • 目录:Page2.aspx
  4. 点击
  5. Server.Transfer("~/Page3.aspx") on按钮
    • Url: .../Page2.aspx
    • 目录:Page3.aspx

为什么url在第三步改变?

当您调用Server.Transfer()时,第1页的执行被停止,而在同一个HTTP请求中执行第2页。然后执行第二页(Page2.aspx)的方式与直接对其URL进行任何正常请求的方式相同,因此表单的操作被设置为自己的URL(尽管从Server.Transfer()调用)。

如果不是这种情况,那么当表单提交时,它将发送到Page1。Aspx(如您所期望的),但此页面不一定包含相同的控件并能够处理请求。

这个可能有帮助:

Response.Redirect("~/page.aspx",false)

相关内容

  • 没有找到相关文章