asp.net 页面跳转的方法
目前知道有4种:
1超链接
2、response.redirect("urlString")
3、server.transfer("urlString")
4、postbackurl
超链接:
首先是添加一个新的web窗体,然后在原有的默认页中添加一个超链接。
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">去目标页面</asp:HyperLink>
这里的 NavigateUrl的值是一个相对路径,网页的位置呢也是在同一个项目中的。运行网页

看一下这个页面的源代码asp:HyperLink经过编译后变成了html的超链接标记。
<div id="div_result">
<a id="HyperLink1" href="Default2.aspx">去目标页面</a>
</div>
如果asp:HyperLink的 NavigateUrl="www.baidu.com",那么在点击超链接的时候就会报错

可以看到,NavigateUrl的值如果直接写网址,系统会认为这是一个相对路径,在点击超链接的时候会自动的在其前面添加http。因此如果要访问项目以外的网页,需如此
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://www.baidu.com">去目标页面</asp:HyperLink>
除了asp:HyperLink 以外,在asp.net中还可以
<a href="Default2.aspx">我也去目标页面</a>
这两者显示在浏览器中的源代码都是一样的,不同的地方在于前者是一个web控件,可以在后台代码中参与更多的操作,比如可以让超链接文本根据需要显示不同的字符串,也可以定位的不同的网页。
response.redirect:
这是一个重定向,是服务器给浏览器一个重定向的指令。在默认页面中添加一个按钮,在后台代码中
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Default2.aspx");
}
同样的在这里如果要访问项目以外的网页,也需要添加http
Response.Redirect的执行过程是:浏览器操作===>服务器编译====>发回页面===>浏览器按新url发出请求===>服务器响应新的url请求===>编译新的页面====>发回浏览器。要注意的是重定向请求只是一个GET请求,这就意味着我们不能从源页中通过重定向命令提交数据。但是我们可以在重定向中使用查询字符串来传递数据。如下面代码所示:
protected void Button1_Click(object sender, EventArgs e)
{ Response.Redirect("Default2.aspx?userName=" + UserName.Text)); }
上面的例子将一个查询字符串作为参数传递给了Response.Redirect方法的目标URL。我们可以通过如下的代码获得源数据。
protected void Page_Load(object sender, EventArgs e)
{
string userName = Request["userName"];
}
server.transfer:这个也是服务器重定向,但是它只在服务器端发生而不通知浏览器。执行过程:
浏览器操作===>服务器编译====>server.transfer重定向===>服务器响应新的url请求===>编译新的页面====>发回浏览器。两种重定向的比较:
server.transfer只能重定向到站内的网页,在按钮的后台代码中通过server.transfer来访问Default2.aspx,

可以看到地址栏里面的网址并没有改变,仍是默认页的地址。
postbackurl:凡是具有IButtonControl接口的控件都有postbackurl属性,用来定义目标页面的地址。(可以是本站的,也可以是外站的)。这种方式的跳转,目标页可以调用原页面中控件的值。在页面中添加一个asp:LinkButton控件,它就具有postbackurl属性。
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">LinkButton</asp:LinkButton>
运行程序后,查看网页源代码
<a id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("LinkButton1", "", false, "", "Default2.aspx", false, true))">LinkButton</a>
现在来看看如何实现PostBackUrl跳转的目标页调用原页面中的控件的值:
这个是原页面中的控件代码
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">我是LinkButton</asp:LinkButton>
在目标页中
protected void Page_Load(object sender, EventArgs e)
{
if(PreviousPage.IsCrossPagePostBack)
{
LinkButton b = (LinkButton)PreviousPage.FindControl("LinkButton1");
Label1.Text = b.Text;
}
}
<div>
<p>我是目标页面</p>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
跳转后的页面

asp.net 页面跳转的方法的更多相关文章
- ASP.NET页面跳转的三大方法详解
ASP.NET页面跳转有什么方法呢?,现在给大家介绍三种方法,他们的区别是什么呢?让我们开始吧: ASP.NET页面跳转1.response.redirect 这个跳转页面的方法跳转的速度不快,因为它 ...
- ASP.NET页面跳转的三种方法比较
在ASP.NET下,经常需要在页面之间跳转,下面我们来分别介绍一下关于.NET中Response.Redirect(),Sever.Execute(),Server.Transfer() 三种页面跳转 ...
- js中页面刷新和页面跳转的方法总结
.js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...
- 总结asp.net页面跳转
ASP.NET页面跳转相关知识 一.<a>标签 1. <a href=”test.aspx”></a> 2. 这是最常见的一种转向方法; eg: < ...
- Asp.net页面跳转Session丢失问题
原本去年在做项目时,写好的一记篇博客分享给大家. Asp.net页面跳转Session丢失问题 编写人:CC阿爸 2014-4-2 l 近来在做泛微OA与公司自行开发的系统集成登录的问题.在使用 ...
- ASP.NET页面刷新的实现方法总结
先看看ASP.NET页面刷新的实现方法: 第一: private void Button1_Click( object sender, System.EventArgs e ) { Response. ...
- Web设计中打开新页面或页面跳转的方法 js跳转页面
Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...
- js中页面刷新和页面跳转的方法总结 [ 转自欢醉同学 ]
.js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...
- java servlet 几种页面跳转的方法及传值
java servlet 几种页面跳转的方法及传值 java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.appli ...
随机推荐
- C# 之 抽象类与接口
抽象类 C#同意把类和方法声明为abstract,即抽象类和抽象方法.抽象类通常代表一个抽象概念,它提供一个继承的出发点,当设计一个新的对象类时,一定是用来继承的,所以,在一个以继承关系形成的等级结构 ...
- zabbix windows angent安装:
zabbix windows angent安装:1.下载zabbix agent for windows客户端,直接解压到C盘下.C:\zabbix 的目录015/04/21 11:16 <DI ...
- oracle spoof用法
关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西.) 对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如: select taskindex|| ...
- 输出jq对象
console.log($()); 效果截图:
- 【笔记】JS中的数组方法
push()方法:可以向数组的末尾添加一个或者多个元素,并且返回新的长度 pop()方法:可以删除数组最后一个元素,并且返回被删除的元素,注意:如果数组是空的,该方法不进行任何操作,返回undef ...
- jeasyui制作计划-ajax学习
Ajax:可以无刷新状态更新页面,并且实现异步提交,提升了用户的体验. 1.load()函数的使用,可以三个参数:url(必须的参数,请求html文件的url地址,参数类型string).date(可 ...
- (原)JNI中env->GetByteArrayElements和AndroidBitmap_getInfo的冲突
也不是很确定,前段时间的代码没有出问题,但是今天调试了半天,一直崩溃:vm aborting. 以前的部分代码: JNIEXPORT void JNICALL XXX (JNIEnv* env,job ...
- Oracle学习之常见错误整理
一.ORA-12154: TNS: 无法解析指定的连接标识符 在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接, ...
- centos出现磁盘坏掉,怎么修复和检测。
当dmesg的时候,出现下面的信息说明磁盘有问题 Info fld=0x139066d0 end_request: I/O error, dev sda, sector 328230608 Buffe ...
- nginx自定义模块编写-根据post参数路由到不同服务器
nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...