asp.net 页面跳转方式总结(网摘)

来源:互联网 发布:轴承座型号查询数据 编辑:程序博客网 时间:2024/04/30 18:15

ASP.NET页面跳转有什么方法呢?,现在给大家介绍三种方法,他们的区别是什么呢?让我们开始吧:

ASP.NET页面跳转1、response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。

ASP.NET页面跳转2、server.transfer 速度快,只需要一次postback ,但是。。。。他必须是在同一个站点下,因为它是server的一个方法。另外,他能跳过登录保护。你可以写个小程序试试:设计一个由页面一到页面二的跳转,但要进入到页面二需要登录,form认证,但如果跳转语句使用transfer的话,那就不会弹出登录页面了。这个方法的重定向请求是发生在服务器端,所以浏览器的url地址仍然保留的是原页面的地址!

ASP.NET页面跳转3、sever.execute 这个方法主要是用在页面设计上面,而且他必须是跳转同一站点下的页面。这个方法是需要将一个页面的输出结果插入到另一个aspx页面的时候使用,大部分是在表格中,将某一个页面类似于嵌套的方式存在于另一页面。

ASP.NET页面跳转总结:

当需要把用户跳转到另一台服务器上的页面的时候 ,使用redirect

当需要把用户跳转到非aspx页面时候,如html,使用redirect

需要把查询字符串作为url一部分的时候保留传给服务器的时候,因为其他2种方法不能做到2次postback,把数据先带回服务器,使用redirect

需要aspx页面间的转换(不涉及登录),使用transfer

当需要把aspx页面的输出结果插入到另一个aspx页面的时候使用 execute方法。

当然,忘记了还有一个超链接!当然这个就不需要讲太多了。他是在当需要用户来决定什么时候跳转页面,就使用超链接。

顺便提一下,如何使用redirect方法在查询字符串中使用汉字,因为经常的情况是出现乱码,原因是url不支持汉字。这个时候需要转换:

以下是引用片段:

  1. string message =server.urlencode("欢迎来到赛跑专栏");  

先转换,再使用查询字符串

以下是引用片段:

  1. response.redirect("webform2.aspx?msg="+message);  

ASP.NET页面跳转的方法就向你介绍到这里,希望这样的讲解对你理解ASP.NET页面跳转有所帮助。

 

 

二:http://zhangbq168.blog.163.com/blog/static/23735305200810105159827/

ASP.NET页面跳转的几种方法
<a>标签
1.         <a href=”test.aspx”></a>
2.         这是最常见的一种转向方法;

HyperLink控件
1.         Asp.net 服务器端控件 属性NavigateUrl指定要跳转到的Url地址
2.         NavigateUrl是可以在服务器端使用代码修改,这个区别于<a>
3.         由于HyperLink本身没有事件所以要在服务器端其它事件中设置NavigateUrl
4.         代码示例
<Asp:HyperLink runat=”server” NavigatoeUrl=”test.aspx”>ok</Asp:HyperLink>

Response.Redirect()方法
1.         过程:发送一个Http响应到客户端,通知客户端跳转到一个新的页面,然后客户端再发送跳转请求到服务器端。
2.         页面跳转之后内部控件保存的所有信息丢失,当A跳转到B,B页面将不能访问A页面提交的数据信息。
3.         使用这个方法使用这个方法跳转后浏览器地址栏的Url信息改变
4.         可以使用Session Cookies Application等对象进行页面间的数据传递
5.         重定向操作发生在客户端,总共涉及到两次与Web服务器的通信:一次是对原始页面的请求,另一次是重定向新页面的请求

Server.Transfer()方法
1.         实现页面跳转的同时将页面的控制权进行移交
2.         页面跳转过程中Request Session等保存的信息不变,跳转之后可以使用上一个页面提交的数据
3.         跳转之后浏览器地址栏的Url不变
4.         这种方法的重定向请求是在服务器端的进行的,浏览器不知道页面已经发生了一次跳转

Server.Execute()方法
1.         该方法允许当前页面执行同一个Web服务器上的另一个页面
2.         页面执行完毕之后重新回到原始页面发出Server.Execute()的位置。
3.         这种方式类似针对页面的一次函数调用 被请求的页面可以使用原始页面的表单数据和查询字符串集合
4.         被调用页面的Page指令的EnableViewStateMac属性设置为False

JavaScript
        1.string str = "<script language=javascript>history.go(-2);</script>";
          Response.Write(str);
       2.Response.Write("<script>document.location.href='ProjectAddList.aspx';</script>");

话题相关:
1.         为了确保HTML输出的合法性 最好使用Response.Redirect方法;因为Server.Execute 或者Server.Transfer方法返回给客户端的页面包含多个<Html><body>标记,不是合法的HTML页面,在非IE浏览器中可能会发生错误。
2.         由于Server.Transfer在服务器端执行重定向,所以避免了不必要的网络通信,从而获得了更好的性能和浏览效果

原创粉丝点击