为什么连续调用Server.Transfer会更改URL?

时间:2013-02-26 13:44:43

标签: c# asp.net

单击按钮时,我正在使用Server.Transfer加载其他页面的内容。这按预期工作,网址保持不变。但是,如果我尝试在第二页中单击按钮时加载第三页,则该URL将更改为第二页的URL。我希望它能保留第一页的网址。

示例:

  1. Page1.aspx加载。
    • 网址:.../Page1.aspx
    • 内容:Page1.aspx
  2. 点击按钮时
  3. Server.Transfer("~/Page2.aspx")
    • 网址:.../Page1.aspx
    • 内容:Page2.aspx
  4. 点击按钮时
  5. Server.Transfer("~/Page3.aspx")
    • 网址:.../Page2.aspx
    • 内容:Page3.aspx
  6. 为什么网址会在第三步中发生变化?

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:-2)

这个可能会有所帮助:

Response.Redirect("~/page.aspx",false)
相关问题