asp.net跳转页面的三种方法比较

 更新时间:2008年06月21日 22:50:56   作者:  
asp.net下的三种转向页面的方法小结,给使用页面转向的朋友一个参考

1、 response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。
但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。
  2、 server.transfer 速度快,只需要一次postback ,但是。。。。他必须是在同一个站点下,因为它是server的一个方法。另外,他能跳过登录保护。你可以写个小程序试试:设计一个由页面一到页面二的跳转,但要进入到页面二需要登录,form认证,但如果跳转语句使用transfer的话,那就不会弹出登录页面了。这个方法的重定向请求是发生在服务器端,所以浏览器的url地址仍然保留的是原页面的地址!
  3、 sever.execute 这个方法主要是用在页面设计上面,而且他必须是跳转同一站点下的页面。这个方法是需要将一个页面的输出结果插入到另一个aspx页面的时候使用,大部分是在表格中,将某一个页面类似于嵌套的方式存在于另一页面。
  总结:
  当需要把用户跳转到另一台服务器上的页面的时候 ,使用redirect
  当需要把用户跳转到非aspx页面时候,如html,使用redirect
  需要把查询字符串作为url一部分的时候保留传给服务器的时候,因为其他2种方法不能做到2次postback,把数据先带回服务器,使用redirect
  需要aspx页面间的转换(不涉及登录),使用transfer
  当需要把aspx页面的输出结果插入到另一个aspx页面的时候使用 execute方法。
  当然,忘记了还有一个超链接!当然这个就不需要讲太多了。他是在当需要用户来决定什么时候跳转页面,就使用超链接。
  顺便提一下,如何使用redirect方法在查询字符串中使用汉字,因为经常的情况是出现乱码,原因是url不支持汉字。这个时候需要转换:
以下是引用片段:
  string message =server.urlencode("欢迎来到赛跑专栏"); 
  先转换,再使用查询字符串
以下是引用片段:
  response.redirect("webform2.aspx?msg="+message); 

相关文章

  • 详解Asp.Net MVC——控制器与动作(Controller And Action)

    详解Asp.Net MVC——控制器与动作(Controller And Action)

    这篇文章主要介绍了详解Asp.Net MVC——控制器与动作(Controller And Action) ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • asp.net下获取远程网页的内容之二(downmoon原创)

    asp.net下获取远程网页的内容之二(downmoon原创)

    asp.net下获取远程网页的内容之二(downmoon原创)...
    2007-04-04
  • c# 在WebBrowser中用SendMessage模拟鼠标点击

    c# 在WebBrowser中用SendMessage模拟鼠标点击

    想在WebBrowser控件里面模拟鼠标点击,在百度上找了半天,怎么也找不到,还是google强大,在一个国外网站上找到的,代码比较清楚了,不做说明。
    2010-02-02
  • asp.net防止刷新时重复提交(可禁用工具条刷新按钮)

    asp.net防止刷新时重复提交(可禁用工具条刷新按钮)

    前段时间遇到了需要禁用刷新的需求,f5按钮就不说了,简单的js就能把它禁用,但是工具条上的刷新按钮却防止不了啊,不过本文介绍的一种方法却可以解决此问题,感兴趣的朋友可以了解下啊,希望本文对你有所帮助
    2013-01-01
  • Entity Framework代码优先Code First入门

    Entity Framework代码优先Code First入门

    这篇文章介绍了Entity Framework的代码优先模式Code First,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • .NET Windows 多线程thread编程

    .NET Windows 多线程thread编程

    .net里使用线程,用thread类,定义线程,启动,销毁,全部包括在这个类里,定义一个线程,必须指定这个线程的函数,也就是这个线程是做什么的
    2012-12-12
  • ASP.NET XmlHttp跨域访问实现代码

    ASP.NET XmlHttp跨域访问实现代码

    最近项目需要实现XmlHttp的POST方法到另一服务器上的页面进行数据的更新,可是IE会提出“该页正在访问其控制范围之外的信息,是否继续?”等警告信息,而在其他浏览器上直接禁止掉,GOOGLE一下原来是XmlHttp的跨域访问问题,找了很多资料,说是提供很多解决方案,可是都没有用处。
    2008-11-11
  • ADO.NET之连接池技术的使用详解

    ADO.NET之连接池技术的使用详解

    本篇文章是对连接池技术的使用进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MVC4制作网站教程第一篇 绪论

    MVC4制作网站教程第一篇 绪论

    MVC4制作网站教程第一篇,创建项目,网站配置,从最基本的操作入手,帮助大家了解MVC4网站入门制作的过程,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • WPF下YUV播放的D3D解决方案

    WPF下YUV播放的D3D解决方案

    这篇文章主要介绍了WPF下YUV播放的D3D解决方案,需要的朋友可以参考下
    2017-04-04

最新评论