目前知道有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(&quot;LinkButton1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, 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 页面跳转的方法的更多相关文章

  1. ASP.NET页面跳转的三大方法详解

    ASP.NET页面跳转有什么方法呢?,现在给大家介绍三种方法,他们的区别是什么呢?让我们开始吧: ASP.NET页面跳转1.response.redirect 这个跳转页面的方法跳转的速度不快,因为它 ...

  2. ASP.NET页面跳转的三种方法比较

    在ASP.NET下,经常需要在页面之间跳转,下面我们来分别介绍一下关于.NET中Response.Redirect(),Sever.Execute(),Server.Transfer() 三种页面跳转 ...

  3. js中页面刷新和页面跳转的方法总结

    .js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...

  4. 总结asp.net页面跳转

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

  5. Asp.net页面跳转Session丢失问题

    原本去年在做项目时,写好的一记篇博客分享给大家. Asp.net页面跳转Session丢失问题   编写人:CC阿爸 2014-4-2 l  近来在做泛微OA与公司自行开发的系统集成登录的问题.在使用 ...

  6. ASP.NET页面刷新的实现方法总结

    先看看ASP.NET页面刷新的实现方法: 第一: private void Button1_Click( object sender, System.EventArgs e ) { Response. ...

  7. Web设计中打开新页面或页面跳转的方法 js跳转页面

    Web设计中打开新页面或页面跳转的方法 一.asp.net c# 打开新页面或页面跳转 1. 最常用的页面跳转(原窗口被替代):Response.Redirect("newpage.aspx ...

  8. js中页面刷新和页面跳转的方法总结 [ 转自欢醉同学 ]

    .js中cookie的基本用法简介 2009-12-15 js中页面刷新和页面跳转的方法总结 文章分类:Web前端 关键字: javascript js中页面刷新和页面跳转的方法总结 1.histor ...

  9. java servlet 几种页面跳转的方法及传值

    java servlet 几种页面跳转的方法及传值   java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.appli ...

随机推荐

  1. 不定义JQuery插件,不要说会JQuery[转载]

    http://www.cnblogs.com/xcj26/p/3345556.html 不定义JQuery插件,不要说会JQuery 一:导言 有些WEB开发者,会引用一个JQuery类库,然后在网页 ...

  2. NET基础课--XML基础

    id level是属性,title为子节点 接下来操作子节点 比较xml的处理方式: 1和3适合数据量小的时候.

  3. 快速解决js开发下拉框中blur与click冲突

    在开发中我们会经常遇到blur和click冲突的情况.下面叙述了开发中常遇到的"下拉框"的问题,并提供了两种解决方案. 一.blur和click事件简述 blur事件:当元素失去焦 ...

  4. Objective-C实现计算你写了多少行代码

    #import <Foundation/Foundation.h> NSInteger codeLineCount(NSString *path) { //1.获取文件管理者,这是一个单例 ...

  5. C函数指针简单用例

    (1)函数指针:可以指向 一类 固定形参类型和返回值类型 的函数 的指针声明:int fun(int, int)    ||    \/int (*pfun)(int, int) pfun就是函数指针 ...

  6. 使用Hashtable和List结合拼json数据

    在做项目的时候,有时候需要向页面返回一个特定的json类型的数据,一般情况下会有下面的方法进行拼接: public String chongzhiList() throws Exception { L ...

  7. nginx上传模块nginx_upload_module使用

    1.安装模块 1 cd /data/software 2 wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.0.12.t ...

  8. Matlab 仿真实现TI Instaspin 的Foc 逆Clarke变换和SVPWM

    一直没搞明白TI 的Instaspin的SVPWM实现原理,最后只能在Matlab里仿真看看输出波形是不是和普通的SVPWM实现输出的波形一样,用M文件实现,下面是代码: clear all; the ...

  9. JVM的生命周期——JVM之二

    一.首先分析两个概念 JVM实例和JVM执行引擎实例 (1)JVM实例对应了一个独立运行的java程序——进程级别 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程 ...

  10. 映射 SQL 和 Java 类型

    http://alex2009.blog.51cto.com/749524/272942 AJAX: http://www.w3school.com.cn/jquery/ajax_ajax.asp h ...