C#网页跳转方法总结

一、目前在ASP.NET中页面传值共有这么几种方式:

1.Response.Redirect(http://www.baidu.com,false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。 跳转向新的页面,原窗口被代替。" 浏览器中的URL为新路径。 :Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了 状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。这就是说, 使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求, 得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。

2.Server.Transfer("Default2.aspx?name=zhangan",true); 目标页面和原页面可以在同一个服务器上。 跳转向新的页面,原窗口被代替。 波球论坛浏览器中的URL为原路径不变。 默认情况下,Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成 Tb310True,就可以保留第一个页面的表单数据和查询字符串。 同时,使用Server.Transfer时应注意一点:目标页面将使用原始页面创建的应答流,这导致ASP.NET的机器验证检查b310,,博球,博球网,行家心水,赛事推荐,赛事分析,资料库,足球赛事,篮球,NBA,赔率,比分,篮球数据,足球数据.
(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据和查询字符串集合, 必须把目标页面Page指令的EnableViewStateMac属性设置成False。

3.Server.Execute("Default5.aspx?address=beijing); 目标页面和原页面可以在同一个服务器上。 跳转向新的页面,再跳转会原页面。 浏览器中的URL为原路径不变。 当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。 这种页面导航方式类似于针对ASPX页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把 被调用页面Page指令的EnableViewStateMac属性设置成False。

4.Response.Write("<script language='javascript'>window.open('aaa.aspx');</script>");_ 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。 原窗口保留,另外新增一个新页面。

5.Response.Write("<script language='javascript'>window.location='Default2.aspx'</script>"); 打开新的页面,原窗口被代替。

6.Response.Write("<script>window.showModalDialog('Default2.aspx')</script>");

7.Response.Write("<script>window.showModelessDialog('Default2.aspx')</script>");

(一)、showModalDialog和showModelessDialog有什么不同?  

showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。b310,,博球,博球网,行家心水,赛事推荐,赛事分析,资料库,足球赛事,篮球,NBA,赔率,比分,篮球数据,足球数据   showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)

(二)、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?  

在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的

二、如果在两个页面间需要大量的参数要传传递,如数据查询等页面时,用1 - 6的方法传值及其不便,而第 7 种方法确有一独特的优势!但使用该方法时需要一定的设置,现简单介绍一下该方法的使用方式:

  以查询数据页面为例:

在查询页面中设置如下公有属性(QueryPage.aspx):

public class QueryPage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtStaDate;
protected System.Web.UI.WebControls.TextBox txtEndDate;
 ...
/// <summary>
/// 开始时间
/// </summary>
public string StaDate
{
get{ return this.txtStaDate.Text;}
set{this.txtStaDate.Text = value;}
}
/// <summary>
/// 结束时间
/// </summary>
public string EndDate
{
get{ return this.txtEndDate.Text;}
set{this.txtEndDate.Text = value;}
}
....
private void btnEnter_Click(object sender, System.EventArgs e)
{
Server.Transfer("ResultPage.aspx");
}
}

在显示查询结果页面(ResultPage.aspx):

 public class ResultPage : System.Web.UI.Page
{
 private void Page_Load(object sender, System.EventArgs e)
 {
//转换一下即可获得前一页面中输入的数据
QueryPage queryPage = ( QueryPage )Context.Handler;
Response.Write( "StaDate:" );
Response.Write( queryPage.StaDate );
Response.Write( "<br/>EndDate:" );
Response.Write( queryPage.EndDate );
 }
}

三、如果有许多查询页面共用一个结果页面的设置方法:

在这种方式中关键在于“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的转换,只有转换不依赖于特定的页面时即可实现。

如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!

1、先定义一个类,用该类放置所有查询参数:

/// <summary>
/// 结果页面中要用到的值
/// </summary>
public class QueryParams
{
private string staDate;
private string endDate;
/// <summary>
/// 开始时间
/// </summary>
public string StaDate
{
get{ return this.staDate;}
set{this.staDate = value;}
}
/// <summary>
/// 结束时间
/// </summary>
public string EndDate
{
get{ return this.endDate;}
set{this.endDate = value;}
}
}

2、接口定义:

/// <summary>
/// 定义查询接口。
/// </summary>
public interface IQueryParams
{
/// <summary>
/// 参数
/// </summary>
QueryParams Parameters{get;}
}

3、查询页面继承IQueryParams接口(QueryPage.aspx):

/// <summary>
///查询页面,继承接口
/// </summary>
public class QueryPage : System.Web.UI.Page, IQueryParams
{
protected System.Web.UI.WebControls.TextBox txtStaDate;
protected System.Web.UI.WebControls.TextBox txtEndDate;
private QueryParams queryParams;
 ...
/// <summary>
/// 结果页面用到的参数
/// </summary>
 public QueryParams Parameters
{
get
{
return queryParams;
}
}
....
private void btnEnter_Click(object sender, System.EventArgs e)
{
//赋值
queryParams = new QueryParams();
queryParams.StaDate = this.txtStaDate.Text;
queryParams.EndDate = this.txtEndDate.Text
Server.Transfer("ResultPage.aspx");
}
}

4、别外的页面也如此设置

5、接收页面(ResultPage.aspx):

public class ResultPage : System.Web.UI.Page
{
 private void Page_Load(object sender, System.EventArgs e)
 {
QueryParams queryParams = new QueryParams();
IQueryParams queryInterface;
//实现该接口的页面
if( Context.Handler is IQueryParams)
{
queryInterface = ( IQueryParams )Context.Handler;
queryParams = queryInterface.Parameters;
}
Response.Write( "StaDate:" );
Response.Write( queryParams.StaDate );
Response.Write( "<br/>EndDate:" );
Response.Write( queryParams.EndDate );
 }
}

以上内容给大家介绍了C#网页跳转方法总结,希望大家喜欢。

(0)

相关推荐

  • asp.net(c#)网页跳转七种方法小结

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

  • javascript实现倒计时N秒后网页自动跳转代码

    复制代码 代码如下: <title>JS倒计时网页自动跳转代码</title>   <script language="JavaScript" type="text/javascript">     function delayURL(url) {         var delay = document.getElementById("time").innerHTML;         if(delay &g

  • javascript 网页跳转的方法

    第一种: <script language="javascript" type="text/javascript"> window.location.href="login.jsp?backurl=\"+window.location.href; </script> 第二种: <script language="javascript"> alert("返回"); wind

  • C#网页跳转方法总结

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.Response.Redirect(http://www.baidu.com,false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径.后面的bool值为是否停止执行当前页. 跳转向新的页面,原窗口被代替." 浏览器中的URL为新路径. :Response.Redirect方法导致浏览器链接到一个指定的URL.当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了 状态代码302(表示目标已

  • php中重定向网页跳转方法总结案例教程

    PHP中重定向网页跳转页面的方法(共三种) 第一种:利用header()函数进行重定向,这也是我用的较多的.(注意!locationhe和":"之间不能有空格,否则无作用!) <?php header('content-type:text/html;charset=uft-8); //重定向页面 header('location:index.php'); ?> 第二种:利用HTML 头部中的 meta标签,定义http-equiv=refresh 和content=&quo

  • Jquery实现网页跳转或用命令打开指定网页的解决方法

    Jquery实现网页跳转或用命令打开指定网页!location.href = "www.jb51.net";location.href = "aa.aspx";

  • php银联网页支付实现方法

    本文实例讲述了php银联网页支付实现方法.分享给大家供大家参考.具体分析如下: 这里介绍的银联WAP支付功能,仅限消费功能. 1. PHP代码如下: 复制代码 代码如下: <?php namespace common\services; class UnionPay {     /**      * 支付配置      * @var array      */     public $config = [];     /**      * 支付参数,提交到银联对应接口的所有参数      * @

  • php开发中的页面跳转方法总结

    页面跳转可能是由于用户单击链接.按钮等触发的,也可能是系统自动产生的.页面自动跳转在WEB开发中经常用到,而且根据需求可以采用不同的跳转方式,比如提示操作信息后延时跳转等, 本文总结了WEB开发中常见的几种页面跳转方法. PHP header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,这时页面跳转是302重定向: $url = "http://www.jb51.net/"; header( &qu

  • Android调用系统自带浏览器打开网页的实现方法

    在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接.只需要传入一个uri,可以是链接地址. 启动android默认浏览器 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器.如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打开连接. Uri uri = Uri.parse("https://www.baidu.com"); Intent intent = new Intent(Intent.ACTI

  • django创建最简单HTML页面跳转方法

    假设已经通过: django-admin startproject +项目名称 python manage.py +项目应用 创建好一个项目以及内部的项目应用后,并且会运行django看到欢迎界面了. # 真相大白:这里解释一下两句语句的不同之处在于,第一个语句是执行django模块库的函数.在我们安装目录下能看到有"django-admin.exe"的运行程序.第二个是执行python语句,执行文件名称为django创建的manage.py的文件.所以这里也特别提醒,在创建完成一个项

  • js+html5实现canvas绘制网页时钟的方法

    本文实例讲述了js+html5实现canvas绘制网页时钟的方法,画的是一个可用于网页的.带摆的钟表,可以通过按钮调整其大小和位置,具体实现内容如下 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Clock</title> <script type="tex

  • jquery实现简单合拢与展开网页面板的方法

    本文实例讲述了jquery实现简单合拢与展开网页面板的方法.分享给大家供大家参考.具体如下: 这是一款网页上常见的合拢(收缩).伸展面板代码,使用了jQuery插件,代码更加简化,点击面板的标题栏即可折叠.或展开这个层,是网上很流行的效果,由此可扩展出的功能还真挺多,只要动脑筋,一定能做出来. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-simple-hidden-show-web-table-codes/ 具体代码如下: <!

  • JavaScript实现点击按钮切换网页背景色的方法

    本文实例讲述了JavaScript实现点击按钮切换网页背景色的方法.分享给大家供大家参考,具体如下: 这里演示JavaScript用按钮随意变换背景颜色,每点击一下按钮,就可以随机改变一种网页背景颜色.颜色值事先是保存在JS的数组里,你在代码里会发现他们,若不想要某个颜色,就替换掉即可. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-btn-click-rand-bgcolor-codes/ 具体代码如下: <!DOCTYPE HTML

随机推荐