目前知道有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. 使用一个HttpModule拦截Http请求,来检测页面刷新(F5或正常的请求)

    在Web Application中,有个问题就是:“我怎么来判断一个http请求到底是通过按F5刷新的请求还是正常的提交请求?” 相信了解ASP.NET的人知道我在说什么,会有同感,而且这其实不是一个 ...

  2. 【.NetRemoting-3】2015.09.18

    [Remoting程序的基本实现] [一]服务程序集 [1]服务对象必须要求继承[MBR,MarshalByRefObject] [二]服务端应用程序 [1]注册通道 [两种类型的通道] [A]发送请 ...

  3. CAA调试

    在需要调试的Module(*.m)上右键,选择属性,命令位置选择你的framework目录    路径选择对应工程目录下的\intel_a(或者Win64    --    64位机器) 然后就可以尽 ...

  4. jQuery Validate 插件验证,,返回不同信息(json remote)自定义

    问题 申请账号需要确认该账号是存在 jquery.validate.js中的remote Jquery Ajax获取后台返回的Json数据后,添加自定义校验 解题思路:输入的登陆信息远程验证是否该账号 ...

  5. python时间函数

    import time print time.time() print time.localtime() fm = '%Y-%m-%d %H:%M:%S' YMD = time.strftime(fm ...

  6. php array 排序 感悟

    array  排序总体有这几个函数sort.rsort.asort.arsort.ksort.krsort.usort.uasort.uksort. 一开始我记来记去总是有点混乱,后来认真对比后终于清 ...

  7. 变形课hd1181(DFS)

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submis ...

  8. 厂商自定义USB设备类概述

    USB协会将常用具有相同/相似功能的设备归为一类,并制定了相关的设备类规范,这样就能保障只要依照同样的规范标准,即使不同的厂商开发的USB设备也可以使用同样的驱动程序,而且操作系统中无须为每种设备提供 ...

  9. C语言的本质(30)——C语言与汇编之ELF文件格式

    ELF(Executable and Linking Format)文件格式是一个开放标准,各种UNIX系统的可执行文件都采用ELF格式,ELF是一种对象文件的格式,用于定义不同类型的对象文件(Obj ...

  10. POSIX和SYSTEM的消息队列应该注意的问题

    首先看看POSIX的代码: 1.posix_mq_server.c #include <mqueue.h>#include <sys/stat.h>#include <s ...