知识大全 对于Asp.net网页重定向方法讨论

Posted

篇首语:一年之计在于春,一日之计在于晨。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 对于Asp.net网页重定向方法讨论相关的知识,希望对你有一定的参考价值。

对于Asp.net网页重定向方法讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  优点 一 它在服务器端直接重定向 不用像response Redirect一样先与浏览器通信再重定向 效率高 二 它可以传递上一个页面的提交值 比如 A页面提交值到B页面 B页面Transfer到C页面 C页面同样可以收到A页面提交的值 三 可以隐藏url

  缺点 不能刷新页面 比如 A页面提交登录信息到B页面 B页面处理后Transfer再到A A页面得不到刷新 指定了过期也不行 如果A B页面不在同一个目录下 我们还会发现更多意想不到的结果 使用相对链接的图片 超链接的指向都改变了 造成这种原因是B页面读取A页面内容却以B页面的身份输出 所以路径改变了

  在中有四种页面跳转导航方式 该如何为你的页面选择一个呢?   

  ·如果要让用户来决定何时转换页面以及转到哪一个页面 超级链接最适合

  ·如果要用程序来控制转换的目标 但转换的时机由用户决定 使用Web服务器的HyperLink控件 动态设置其NavigateUrl属性

  ·如果要把用户连接到另一台服务器上的资源 使用Response Redirect

  ·用Response Redirect把用户连接到非ASPX的资源 例如HTML页面

  ·如果要将查询字符串作为URL的一部分保留 使用Response Redirect

  ·如果要将执行流程转入同一Web服务器的另一个ASPX页面 应当使用Server Transfer而不是Response Redirect 因为Server Transfer能够避免不必要的网络通信 从而获得更好的性能和浏览效果

  ·如果要捕获一个ASPX页面的输出结果 然后将结果插入另一个ASPX页面的特定位置 则使用Server Execute

  ·如果要确保HTML输出合法 请使用Response Redirect 不要使用Server Transfer或Server Execute方法

  关于Server Execute     这种页面导航方式类似于针对ASPX页面的一次函数调用 被调用的页面能够访问发出调用页面的表单数据和查询字符串集合 所以要把被调用页面Page指令的EnableViewStateMac属性设置成False

  默认情况下 被调用页面的输出追加到当前应答流 但是 Server Execute方法有一个重载的方法 允许通过一个TextWriter对象(或者它的子对象 例如StringWriter对象)获取被调用页面的输出 而不是直接追加到输出流 这样 在原始页面中可以方便地调整被调用页面输出结果的位置

  跳转页面提供的三种方法比较今天老师讲了三种跳转页面的方法 现在总结如下

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

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

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

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

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

  需要把查询字符串作为url一部分的时候保留传给服务器的时候 因为其他 种方法不能做到 次postback

  把数据先带回服务器      使用redirect

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

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

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

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

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

  先转换 在使用查询字符串

  response redirect( webform aspx?msg= +message);

  首先 Response Redirect( a aspx ) 在保存此页的数据后 服务器将页面直接转向到a aspx 此方法有个缺陷 就是转向后会丢失此页所有的Request的参数 并且此方法是需要Client发起一个请求

  在IIS 中引入了一个新的函数 Server Transfer( a aspx ) 它很好地解决了转向后丢失此页Request参数的问题 并且由于它是从server端直接向下一页发起请求 所以不需要client再次发送请求 它与Response Redirect的区别在于 Response Redirect可以转向任何一个页面 而Server Transfer只能转向同目录或子目录的网页 Response Redirect转向时地址会变成跳转后的页面地址 而Server Transfer转向时原地址不变 并且传递的参数值也被隐藏

cha138/Article/program/net/201311/11271

相关参考

知识大全 ASP.NET网页语法基础

ASP.NET开发宝典:ASP.NET网页语法基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET网页扩展名

ASP.NET开发宝典:ASP.NET网页扩展名  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 asp.net基础小结

  一动态网页和静态网页  起初看到这两个概念会以为动态网页就是网页带有flash的页面而静态网页就是不会动的网页现在看来这种理解是错误的大错特错所谓的动态网页呢其实是指网页和服务器有交互的服务器中的

知识大全 ASP.NET生成静态网页的方法

ASP.NET生成静态网页的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET生成

知识大全 ASP.NET在服务器端控制网页

ASP.NET在服务器端控制网页  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!使用Net和C#开发

知识大全 如何在ASP.NET网页间传递数据

如何在ASP.NET网页间传递数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  重点总结  目

知识大全 asp.net显示下载提示的下载网页程序

cha138/Article/program/net/201311/14277

知识大全 在asp.net网页中显示Vertical line.

在asp.net网页中显示Verticalline.  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 用ASP.NET将网页错误信息写入系统日志

用ASP.NET将网页错误信息写入系统日志  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  设计网

知识大全 ASP.NET让网页弹出窗口不再困难

ASP.NET让网页弹出窗口不再困难  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于项目要用