ASP.NET------Server.Transfer(),Response.Redirect()和PostBackUrl的跨页面Postback效果比较
Posted on 2009-07-28 19:49 鸡尾虾的壳 阅读(658) 评论(0) 编辑 收藏 举报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改变了。