记住 “Server.Transfer 不会更改地址栏中的 URL”
检查此站点,您将清楚地了解 Server.Transfer 和 Response.Redirect
https://www.youtube.com/watch?v=xJVjRUHXYbE&index=54&list=PL6n9fhu94yhXQS_p1i-HLIftB9Y7Vnxlo
使用 Server.Transfer 时
例如:
Page1.aspx、Page2.aspx
在 page1.aspx 中假设按钮中的代码单击如下
Server.Transfer("~/page2.aspx");
然后您将重定向到 page2.aspx 但地址栏中显示的 url 相同,即;page1.aspx 即使您在 page2.aspx 中。
当您使用 Response.Redirect 时,它会在您重定向到 page2.aspx 时显示 page2.aspx
来回答你的问题:
这是预期的行为。
如果您第二次使用 Server.Transfer,您会询问 Url 更改
如果您是第一次运行 page1.aspx,它会显示
Address Bar : `http://localhost:1234/WebSite3/Page1.aspx`
Action Name : "page1.aspx"//see pagesource
如果您单击 page1.aspx 中的按钮,它将显示 page2.aspx 但具有相同的 URL,例如:
Address Bar : `http://localhost:1234/WebSite3/Page1.aspx` but different
Action Name="page2.aspx"//see pagesource
如果您单击 page2.aspx 中的按钮,它将显示 page3.aspx 但具有不同的 url,例如:
Address Bar : `http://localhost:1234/WebSite3/Page2.aspx` but different
Action Name="page3.aspx"//see pagesource
在这里您可以找到不同的 url,因为尽管您的 url 是 page1.aspx,但您的请求来自 page2.aspx,请参阅页面源。因此,url 从 page1.aspx 更改为 page2.aspx。