asp.net 页面转向方法其实就是两种 
服务器端转向和客户端转向

客户端转向实质上是指由浏览器直接向服务器端重新发送一个请求。 
而服务器端转向是指服务器内部进行页面的跳转。

服务器端转向和客户端转向有以下几个区别 
1.客户端转向转向以后ie浏览器的地址栏会发生变化,但是服务器端转向以后,ie浏览器的地址栏不变,ie浏览器并不知道页面已经跳转。 
2.客户端转向前后两个页面是不同的请求,但是服务器端转向确是共用一个请求的。

<a>标签 hyperlink控件 response.redirect()方法以及response.write("<script language=javascript>history.go(-2);</script>) 
都属于客户端转向

server.transfer()方法和server.execute()方法都属于服务器端转向

[一]、<a>标签

1.         <a href=”test.aspx”></a>

2.         这是最常见的一种转向方法;

[二]、hyperlink控件

1.         asp.net 服务器端控件 属性navigateurl指定要跳转到的url地址

2.         navigateurl是可以在服务器端使用代码修改,这个区别于<a>

3.         由于hyperlink本身没有事件所以要在服务器端其它事件中设置navigateurl

4.         代码示例

<asp:hyperlink id=”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服务器的通信:一次是对原始页面的请求

另一次是重定向新页面的请求

[四]、
response.write("<script language=javascript>history.go(-2);</script>)
response.write("<script language=javascript>history.back();</script>)

[五]、server.transfer()方法

1.         实现页面跳转的同时将页面的控制权进行移交

2.         页面跳转过程中request session等保存的信息不变,跳转之后可以使用上一个页面提交的数据

3.         跳转之后浏览器地址栏的url不变

4.         这种方法的重定向请求是在服务器端的进行的,浏览器不知道页面已经发生了一次跳转

[六]、server.execute()方法

1.         该方法允许当前页面执行同一个web服务器上的另一个页面

2.         页面执行完毕之后重新回到原始页面发出server.execute()的位置。

3.         这种方式类似针对页面的一次函数调用 被请求的页面可以使用原始页面的表单数据和查询字符串集合

4.         被调用页面的page指令的enableviewstatemac属性设置为false

注:
1。server.execute和server.transfer视乎你怎么用,通常调用之前都应该response.clear()清除之前的输出,调用之后response.flush()和response.end()结束处理。.
2。hyperlink对比a的最大好处是支持resolveurl。a其实也可以runat="server",虽然感觉有点怪,但至少可以在服务器端对它进行一般控件都
能进行的赋值和数据绑定操作,然而resolveurl则是它布局别的,如果要用"~/default.aspx"这样的路径则最好用hyperlink。

话题相关:

1.         为了确保html输出的合法性 最好使用response.redirect方法;因为server.execute或者server.transfer方法返回给客户端的页面包含多个<html><body>标记,不是合法的html页面,在非ie浏览器中可能会发生错误。

2.         由于server.transfer在服务器端执行重定向,所以避免了不必要的网络通信,从而获得了更好的性能和浏览效果

 

搜索此文相关文章:Asp 6种页面转向方法

 

此文链接:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%8E%92%E8%A1%8C%E6%A6%9C/1917.shtml

 

转载请注明出处:Asp 6种页面转向方法 - 博客园

Asp 6种页面转向方法的更多相关文章

  1. CSS——三种页面引入方法

    目的:为了把样式和内容分开,并且使网页元素更加丰富,引入了CSS CSS页面引入有三种方式: 1)内联式:比较不常用,因为内容和样式仍然在一起,不方便.示例: <!DOCTYPE html> ...

  2. ASP.NET 实现伪静态网页方法

    方法一:利用Httphandler实现URL重写(伪URL及伪静态) 我们有时候会见到这样的地址:“http://www.huoho.com/show-12-34.html”,你或许认为在站点服务器根 ...

  3. 一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法!

    一种基于自定义代码的asp.net网站首页根据IP自动跳转指定页面的方法! 对于大中型网站,为了增强用户体验,往往需要根据不同城市站点的用户推送或展现相应个性化的内容,如对于一些大型门户网站的新闻会有 ...

  4. asp页面快速找到菜单按钮转向的页面的方法

    asp页面快速找到菜单按钮转向的页面的方法: 鼠标放在按钮上,右键属性即可查看

  5. c#ASP.NET中页面传值共有这么几种方式

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect("http://www.hao123.com",false); 目标页面和原页面可以在 ...

  6. 详细介绍ASP.NET页面重定向方法

    ASP.NET中页面重定向的使用的很频繁,实现方法也有不同,自己也试过几种,现在总结一下. 一.Transfer Execute Redirect重定向方法介绍 1.Server.Transfer方法 ...

  7. Asp.net禁用页面缓存的方法总结

    1.在Asp页面首部<head>加入 复制代码 代码如下:   Response.Buffer   =   True      Response.ExpiresAbsolute   =   ...

  8. javascript refresh page 几种页面刷新的方法

    Javascript刷新页面的几种方法:1    history.go(0) 2    location.reload() 3    location=location 4    location.a ...

  9. asp.net传多个值到其它页面的方法

    网站开发中,在页面之间的跳转,经常会用到传值,其中可能会传递多个值. 一.CommadArgument传多个值到其他页面. 像Gridview dataList repeater等数据绑定控件中,可以 ...

随机推荐

  1. ElasticSearch中profile API的使用

    1. 前言 profile API 是 Elasticsearch 5.x 的一个新接口.通过这个功能,可以看到一个搜索聚合请求,是如何拆分成底层的 Lucene 请求,并且显示每部分的耗时情况. 2 ...

  2. JAVA的输入输出基本操作样例

    这些类的继承关系有些类似,弄一个作为样例,理解一下其中的机制. package cc.openhome; import java.io.*; public class Member { private ...

  3. [bzoj1001][BeiJing2006]狼抓兔子_网络流_最小割转对偶图

    狼抓兔子 bzoj-1001 BeiJing2006 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还 ...

  4. 洛谷 P1649 [USACO07OCT]障碍路线Obstacle Course

    P1649 [USACO07OCT]障碍路线Obstacle Course 题目描述 Consider an N x N (1 <= N <= 100) square field comp ...

  5. UVA 10187 From Dusk Till Dawn /PC 110907

    不吐槽.. #include <iostream> #include <map> #include <queue> //无语的水题.节哀吧.且这道题不严谨,因为没说 ...

  6. 6款程序猿不得不爱的bootstrap模板

    bootstrap模板是前端project师们的最爱!假设你还没有開始使用Bootstrap模板,那你可真是有够OUT,这是一个帮助你高速开发的工具.Bootstrap是基于jQuery框架开发的,它 ...

  7. linux下select,poll,epoll的使用与重点分析

    好久没用I/O复用了,感觉差点儿相同都快忘完了.记得当初刚学I/O复用的时候花了好多时间.可是因为那会不太爱写博客,导致花非常多时间搞明确的东西,依旧非常easy忘记.俗话说眼过千遍不如手过一遍,的确 ...

  8. Create and Call HttpHandler in SharePoint

    Create and Call HttpHandler in SharePoint Requirement: 1. Create a httphandler, and reture json data ...

  9. maven环境配置好,一直提示mvn不是内部命令

    设置了环境变量  M2_HOME  跟path  ,在cmd中输入mvn一直提示不是内部命令 解决办法:通过命令设置path 如下:set  path=输入值

  10. ueditor1.4.3在.net环境下的vs开发工具中集成经验

    Ueditor是个非常不错的在线富文本编辑器,几个项目一直使用它.近期想更新版本号.发现新版1.4.3与旧版的部署方式全然不一样了.官网文档介绍的是直接放在iis下的部署说明,没有提到在vs开发工具中 ...