通常有必要了解调用 ASP.NET 网页的方式:是由原始请求 (HTTP GET)、回发 (HTTP POST)、来自其他页的跨页发送 (HTTP POST) 调用的,还是由来自其他页(使用 Transfer 方法或使用浏览器中的回调)的传送调用的。Page 类公开可用于确定页调用方式的属性集。 确定调用 ASP.NET 网页的方式
|
1. Server.Tranfser方法,如Server.Transfer("~/Page2.aspx");
注意:参数中不能带查询参数的。
效果:在Page2.aspx.cs中,IsCrossPagePostBack属性为false。
PreviousPage是可以用的。
Windows的URL是没有变化的,相当于还是自身Page响应,只是用另外一个Page的页面来填充原有页面。
2. Response.Redirect方法,如Response.Redirect("Page2.aspx")
注意:页面中可以带参数,如Response.Redirect("Page2.aspx?parameter1="+Server.UrlEncode("<xml>123</xml>"));
Windows的URL用方法中的参数值替换。
由于参数值中带有特殊编码,需要在Page2.aspx中添加ValidateRequest="false"属性,否则提示"A potentially dangerous Request.QueryString value was detected from the client "的错误。
Page2中通过Request获取URL中包含的参数。
Page2中PreviousPage为null。
IsCrossPagePostBack为false。
3. PostBackUrl属性
<asp:Button ID="CrossPagePost" runat="server" PostBackUrl="~/Page2.aspx" Text="CrossPagePost" />
与Server.Transfer相同的是,PreviousPage可用,IsCrossPagePostBack属性为false。
不同之处是URL改变了。