三种asp.net页面跳转的方法

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

using System;
using System.Web.UI;
namespace WebApplication1
{
 public partial class List : Page
 {
 protected void Page_Load(object sender, EventArgs e)
 {
  // Get response.
  var response = base.Response;
  // Redirect temporarily.
  // ... Don't throw an HttpException to terminate.
  response.Redirect("http://www.jb51.net", false);
 }
 }
}

代码如下 

HTTP/1.1 302 Found
Content-Type: text/html; charset=utf-8
Location: http://www.jb51.net

Server: Microsoft-IIS/7.0
Date: Fri, 13 Aug 2010 21:18:34 GMT
Content-Length: 144
<html>

<head>

<title>Object moved</title></head><body>
<h2>Object moved to <a href=http://www.jb51.net/list/index_1.htm>here</a>.</h2>
</body>

</html>

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

举个例子看看:
1、创建一个web form
2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下

private void Button1_Click
(object sender, System.EventArgs e)
{
Server.Transfer("webform2.aspx");
}

4、创建过程来返回TextBox1,TextBox2控件的值代码如下:
代码如下

public string Name
{
get
{
 return TextBox1.Text;
}
}
public string EMail
{
get
{
 return TextBox2.Text;
}
}

5、新建一个目标页面命名为webform2
6、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:
代码如下

private void Page_Load
(object sender, System.EventArgs e)
{
//创建原始窗体的实例
WebForm1 wf1;
//获得实例化的句柄
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;
}
 

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

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebForm1.aspx.cs" Inherits="WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <title></title>
</head>
<body>
 <form id="form1" runat="server">
 <div>
  <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />

  <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
 </div>
 </form>
</body>
</html>
.net代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class WebForm1 : System.Web.UI.Page
{
 public string Time
 {
  get { return DateTime.Now.ToString(); }
 }
 public string TestFun()
 {
  return "Function of WebForm1 Called";
 }
 protected void Page_Load(object sender, EventArgs e)
 {
  Context.Items.Add("Context", "Context from Form1");
 }
 protected void Button1_Click(object sender, EventArgs e)
 {
  //this.TextBox2.Text =Request ["TextBox1"].ToString ();
  Server.Transfer("WebForm2.aspx", true);//第二个参数为false时,WebForm2.aspx中不能获得TextBox1的内容

 }
}

如果要捕获一个ASPX页面的输出结果,然后将结果插入另一个ASPX页面的特定位置,则使用Server.Execute。
·如果要确保HTML输出合法,请使用Response.Redirect,因为Server.Execute 或者Server.Transfer方法返回给客户端的页面包含多个<Html><body>标记,不是合法的HTML页面,在非IE浏览器中可能会发生错误。

以上就三种asp.net页面跳转的方法,希望对大家的学习有所帮助。

(0)

相关推荐

  • Asp.net SignalR支持的平台有哪些

    SignalR支持多种服务器和客户端配置.此外,每种传输方式都有自身的要求限制:如果某种传输方式不被系统支持,SignalR能够优雅地将故障转移到其他类型的传输方式. 系统要求 SignalR服务器组件可以被多种服务器配置所支持.本节介绍所支持的操作系统,.Net框架,IIS及其他组件. 支持的服务器操作系统 SignalR的服务器组件被以下服务器和客户端操作系统支持. Windows Server 2012 Windows Server 2008 R2 Windows 8 Windows 7

  • ASP.net实现页面跳转的方法

    主要是使用response的属性,代码如下: 复制代码 代码如下: protected void LinkButton1_Click(object sender, EventArgs e)         {             string url = "InfoShow.aspx";             Response.Redirect(url);         } protected void LinkButton1_Click(object sender, Even

  • asp.net mvc signalr简单聊天室制作过程分析

    signalr的神奇.实用很早就知道,但一直都没有亲自去试用,仅停留在文章,看了几篇简单的介绍文字,感觉还是很简单易用的. 由于最后有个项目需要使用到它,所以就决定写个小程序测试一下,实践出真知:别人写的文章,由于环境(版本等)不同,还是或多或少存在一些出入的. 环境:vs2013 / asp.net mvc 5 / signalr 2.2.1 / jquery 1.10.2 先上两个效果图: 系统会自动给加入聊天室的人员分配一个ID,是该人员的唯一标识(绿色为当前用户说的话,橙色为当前用户之外

  • SignalR发送页面跳转通知的方法

    微信商城使用支付宝支付的时候,需要有个过度页面提示用户用浏览器打开页面去支付,等用户在浏览器支付完之后再打开微信(微信此时依旧显示的是过度页面),过度页面需要跳转到订单详情页面.那么这个过度页面怎么知道需要跳转呢? 目前能想到的就是用SigbalR发送通知告诉那个过度页面去跳转. 第一步,先添加SigbalR相关dll. 第二步,自定义hub public class myHub:Hub { public override Task OnConnected() { return base.OnC

  • 新发现原来documenet.URL也可以实现页面跳转

    在JavaScript我们常常使用的跳转语句是: window.location='http://www.jb51.net'; 其实,我们也可以用下面的语句来代替: document.URL='http://www.jb51.net/'; 演示: 无标题文档 alert('按确定跳转到首页');document.URL='http://www.jb51.net'; [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • Asp.net使用SignalR实现消息提醒

    一.引言 前面一篇文章我介绍了如何使用SignalR实现图片的传输,然后对于即时通讯应用来说,消息提醒是必不可少的.现在很多网站的都有新消息的提醒功能.自然对于SignalR系列也少不了这个功能的实现了.在这篇文章中将介绍如何使用SignalR+iNotify库来实现新消息的声音和弹框提醒. 二.消息提醒的实现思路 消息提醒也就是当客户有新消息来时,在客户端的右下角进行弹框提醒.要实现这个功能的思路是: 1.SignalR服务端推送消息到客户端的实现方式为调用客户端的receiveMessage

  • Asp.net使用SignalR实现发送图片

    一.引言 在前一篇已经介绍了如何使用SignalR来实现聊天室的功能,在这篇文章中,将实现如何使用SignalR来实现发送图片的功能. 二.实现发送图片的思路 我还是按照之前的方式来讲述这篇文章,首先,让我们来理清下实现发送图片功能的思路. 图片的显示,除了直接指定图片的路径外(这种实现方式也称为:http URI schema),还可以通过Data Uri Schema的方式来显示图片.这种方式允许在网页里以字符串形式直接内嵌图片.形式如下所示: 复制代码 代码如下: <img src="

  • Asp.NET MVC中使用SignalR实现推送功能

    一.简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息. 可访问其官方网站:https://github.com/SignalR/ 获取更多资讯. 二.Asp.net SignalR 是个什么东东 Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,SignalR会使用JavaScript的长轮询(lo

  • Asp.net SignalR创建实时聊天应用程序

    一.概述 使用 ASP.NET 那么 SignalR 2 创建一个实时聊天应用程序.将 SignalR 添加 MVC 5 应用程序中,并创建聊天视图发送并显示消息. 在Demo中,将学习SignalR 开发任务包括 ︰ 向 MVC 5 应用程序添加那么 SignalR 图书馆. 创建集线器和浩然启动类,以将内容推送到客户端. 使用 web 页中的那么 SignalR jQuery 库发送邮件并显示更新从集线器. 下面的屏幕快照显示在浏览器中运行的已完成的聊天应用程序. 二.实现 创建一个 ASP

  • ASP.NET笔记之页面跳转、调试、form表单、viewstate、cookie的使用说明

    1.页面跳转: (1 服务器传输 server.Transer(http://www.jb51.net);在定向到新页面后,还是会显示原来的URL,浏览器返回不会退回到原页面,历史记录也不会记录. 应用于完整的控制传输,例如安装向导. (2 超链接 (3 浏览器重定向 Redirect ,速度快,没有发送到服务器 (4 跨页发送 PostBackUrl="http://www.jb51.net" /> IsCrossPagePostBack用来判断是否为跨页提交 IsPostBa

随机推荐