先说说Response.Redirect( )和Server.Transfer( ),的区别.这两种网页跳转的方法自ASP时代就已经存在.
执行过程:
1、浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址
2、浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件
切换对象:
1、Response.Redirect可以切换到任何存在的网页。
2、Server.Transfer只能切换到同目录或者子目录的网页。
数据保密:
1、Response.Redirect后地址会变成跳转后的页面地址。
2、Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值。具有数据保密功能。
传递的数据量(网址后附带的参数):
1、Response.Redirect能够传递的数据以2KB为限。
2、传递的数据超过2KB时,务必使用Server.Transfer。
ASP.NET Server.Transfer()是在两个页面之间进行传值的好方法,从A页面Transfer到B页面时,就可以在B页面通过Context.Handler获得A页面的一个类的实例,从而在B调用A的各个成员对象。
再说说跨网页公布(Cross-Page Post),这个是ASP.net 2.0新加入的功能:
1。可以将控件传递到目标网页(取代来源网页)
2。只重新导向与原来网页位于相同web应用程序下的网页
3。可以从来源网页读取值和公共信息。
4。不能用浏览器的“上一步”按钮返回到来源网页,否则可能产生无法预期的行为。
5。适合于用户看不到URL且浏览器的菜单栏被禁用的时候使用。
使用方法:
1。首先新建两个web form,分别为OFrom和DForm,代表来源网页和目标网页。
2。OForm中添加一个TextBox tb和一个Button bt,DForm中添加一个Label label。
3。将bt的PostBackUrl属性设置为DForm所在的页面。
4。在DForm的Page_Load事件中添加代码:
TextBox textbox=(TextBox)PreviousPage.FindControl("tb");
label.Text=textbox.Text;
将来源页面中TextBox中的文本传递到目标页面的Label中。
PreviousPage属于Page类型,只能在Cross-Page Post中使用。在其他情况下不会被初始化。