Asp.net中页面跳转的方法

Asp.net中页面跳转的方法
 
 
1.超链接
这种方法可以直接使用代码(如例1),也可以使用许多的控件(其实这种方法是隐性调用Response.Redirect),如HyperLink,Menu
例1:
  < href ="WebForm2.aspx" > 进入表单2 </ a >
例2:
< form  id ="Form1"  method ="post"  runat ="server" >
   
< asp:HyperLink  id ="HyperLink1"  runat ="server"
   NavigateUrl
="WebForm2.aspx" > 进入表单2 </ asp:HyperLink >
 
</ form >
 
2.Response.Redirect
客户端请求原始页面,服务器返回一个302应答(表示目标已改变,还有新的目的url信息),客户端再次请求
302应答中声明的新页面,服务器返回复位向之后的页面.
 
(1)使用此方法时,将无法保存所有的内部控件数据,页面 A 跳转到页面 B,页面 B 将无法访问页面 A 中 Form 提交的数据.
(2)这种方法来回传递两次信息,对速度有影响.
例1:
string message =server.urlencode("欢迎来到新页面");//汉字形式的参数必须要转化
response.redirect("webform2.aspx?msg="+message);
 
3.Server.Transfer
这种方法只能用于同一服务器上的页面转换.当调用该函数时浏览器中的url不会改变,复位向完全在服务
器端进行,新的页面仍使用前一页面创建的应答流.
 
(1).默认情况下,Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到新页面.
(2).但只要把该方法的第二个参数设置成True,就可以保留第一个页面的表单数据和查询字符串。 但还
是要注意一点,目标页面将使用原始页面创建的应答流,这导致ASP.NET的机器验证检查(Machine
Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据
和查询字符串集合,必须把目标页面Page指令的EnableViewStateMac属性设置成False.
(3).这种方法会绕过新页面的权限验证.
 
例1:
Server.Transfer("test.aspx",true);
Request.Form("UserName"); //此处的UserName为文本框的id.
 
 4.Server.Execute
这种方法相当于一次函数调用,它执行同一服务器上的另一页面,执行完后控制流程重新返回原页面发出
Server.Execute调用的位置.
(1).新页面能够访问原始页面的表单数据和查询字符串集合,所以要把新页面Page指令的
EnableViewStateMac属性设置成False.
(2).这种方法可以将新页面的内容嵌入到原始页面.但这样可能会使页面语法混乱.
例1:
   StringWriter sw =  New StringWriter()
   Server.Execute(
" WebForm2.aspx " , sw)
   Literal1.Text 
=  sw.ToString()
 
参考文献:1.http://blog.csdn.net/whpu/archive/2005/08/23/462842.aspx
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值