关于Asp.net页面跳转、传送消息

本文详细介绍了ASP.NET中页面间的跳转及消息传递方法,包括使用查询字符串结合Response.Redirect的方式,以及通过设置按钮的PostBackURL实现跨页面回发和使用Server.Transfer进行页面跳转的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ls="20" id="ctl00_ctl00_cphContent_cphDoc_EntryEditor1_richTextEditor" class="mceEditor" style="height:450px;width:100%;">

在页面间跳转、传送消息有以下几种方式:

1,查询字符串 + Response.Redirect方法

a. 相当完全从新载入一个页面,和从地址栏中输入地址的效果是一样的。

2,跨页面回发(Cross Post)

a. 方式一:通过设置页面1中的button的postbackurl为页面2。这时,转到页面2,进入页面2的       Page_Load()方法,PreviousPage.IsCrossPagePostBack为真,IsCrossPagePostBack为假,IsPostBack为假,进入PreviousPage.IsCrossPagePostBack判断条件后,执行页面1的生命周期,页面1中的生命周期中,IsCrossPagePostBack为真,PreviousPage.IsCrossPagePostBack属性为假,IsPostBack为假。然后在页面2Unload之后,页面1Unload。

这时,给button设置Click事件执行函数,也不会去执行。

 

b. 方式二:在button的click函数中,使用Server.Transfer()函数,这时,由于出动页面1的按钮单击事件,页面1postback,会执行页面1的page_Load中的Ispostback条件判断,然后执行按钮点击事件,执行Server.Transfer(),页面1生命不结束,而是直接执行页面2生命周期,在页面2中, 会像第一次加载一样, ispostback, PreviousPage.IsCrossPagePostBack, IsCrossPagePostBack均为假,当页面2执行结束后,执行页面1Unload,结束页面1生命周期。

 

可以在某一页面中,采用完全判断:

if (PreviousPage != null)

{

           if (PreviousPage.IsCrossPagePostBack){     // 这里是由postbackurl引发的 }

           else {  // 这里是有Server.Transfer()引发的}

}
else

{

          if (IsPostBack){  // 这里是有自身PostBack引发的}

          else if (IsCrossPagePostBack) {  //  这里是页面2调用页面1的生命周期时}

          else {    // 这里是 第一次加载引发的, 包括 Response.Redirect(),包括有Server.Transfer()引发的页面2全新加载}

}

欢迎访问 在找网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值