ASP.NET跨页传值方法汇总

方法一:问号传值(Response.Redirect方法)

1:源页:在按钮的点击事件程序中写入Response.Redirect方法,在其中使用问号传值。如:

Response.Redirect("Default2.aspx?id="+txtId.Text.Trim()+"&name="+Server.UrlEncode(txtName.Text.Trim()));

HTML代码中可以这样写:

<a href="Default2.aspx?id=1&name=aa">跳转</a>  //多个值用&相连,注意&两边不要加空格

2:目标页:在Request.QueryString集合中查找。

如:Response.Write("ID is "+Request.QueryString["id"].ToString());

或者:<% =Request.QueryString["id"] %>

特点:简单方便,可以跨WEB服务器,但效率低。当Web服务器接到一个重定向请求后,它会将一个响应头送给客户端,这将导致客户端发送一个新的请求到服务器。按句话说,一个重定向请求实际上是两个请求响应如果想要传递一个安全性不太重要或一个结构简单的数值时,用此法最容易

方法二:使用Server.Transfer

1:源页:在按钮的点击事件程序中写入:  Server.Transfer("Default2.aspx", true);   注意一定要加上第二个参数true,否则值传不过去。

2: 目标页:在Request.Form集合中查找发送方页面上的文本框架ID,如

Response.Write("传过来的名字是:"+Request.Form["txtName"].ToString());

特点:跳转的范围仅限于同一个Web服务器的不同网页,且在地址栏中显示的仍是原网页的地址,不便于调试,但属于服务器端的直接重定向,效率比Response.Redirect方法高。

Response.Redirect和Server.Transfer的比较
由于Response.Redirect方法要进行两次请求响应操作,因此,我们应该在对性能要求高的网站尽量避免使用这种方法。然而,只从技术上说,使用redirect方式确实可以从一个网页跳到另一个网页。相比之下,Server.Transfer会更有效率,但是。从本质上说,我们可以使用 Server.Transfer来消除不必要的请求响应操作。如果我们需要重定位到不同服务器的网页,就需要使用Response.Redirect方法。

方法三:使用PostBackUrl

从ASP.NET2.0开始,可以使用PostBackUrl实现跨页传值。

1:源页:在实现了IbuttonControl接口的控件(如按钮、LinkButton等)上,添加属性PostBackUrl="~/Default2.aspx"

2: 目标页:使用PreviousPage属性,且最好判断一下是否是从发送页以PostBackUrl方式跳转过来的,代码如下所示:

        if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack &&

          PreviousPage.IsValid)

        {

            TextBox txt = (TextBox)PreviousPage.FindControl("txtName");

            Response.Write(txt.Text);

        }

若要获取源页的公共成员(例如某个属性的值),必须先获取对源页的强类型引用。例如:

源页中有如下属性:public String CurrentCity{    get    { return textCity.Text;   }}

目标页:<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>

Label1.Text = PreviousPage.CurrentCity;

特点:底层通过javascript函数和保存视图状态的__POSTBACK的隐藏字段实现。具体效率应该较高。

方法四:使用Application对象变量

1:源页: 保存信息,建议同时使用Lock和UnLock方法。

Application.Lock();

Application["PageRequestCount"] = 

    ((int)Application["PageRequestCount"])+1;

Application.UnLock();

2:目标页:int cnt=int.Parse(Application["PageRequestCount"].ToString());

特点:全局变量,所有用户可见,常用在聊天室程序中。

方法五:使用Session

1:源页:保存信息

Session["Name"]= txtName.Text;


2:目标页 string name=Session["Name"].ToString();

Session对象变量若存储过多的数据则会消耗大量的服务器资源,在使用时尤其要注意控制数量。

方法六:使用Cookie

1:源页: HttpCookie Name= new HttpCookie("Name");
      Name.Value= txtName.Text;

cookie.Expires = DateTime.Now.AddMinutes(30);

HttpContext.Current.Response.AppendCookie(Name);

2:目标页:string info =Request.Cookies["cookiename"].Value;

或者:

HttpCookie acookie=Request.Cookie("cookiename");//通过Request获取acookie对象
 string aa=acookie.Value.ToString();//在通过Value属性获取值基本上和Response用法相似。在获取cookie之前,应确保该cookie确实存在。否则,您将得到一个system.NullReferenceException

注:后面三种方法用的是三大对象,各自的特点请参考其他资料。

转载于:https://www.cnblogs.com/lgzslf/archive/2009/05/21/1486362.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作一年后,我有些感悟(写于2017年)

时间拉回到2016年5月23日&#xff0c;当天拍毕业照&#xff0c;晚上是大学毕业酒会&#xff0c;那一晚整个酒店都弥漫着伤感的气息。那一晚大家为了找KTV拖延到很晚&#xff0c;最后一群人选择来到了操场&#xff0c;凌晨两点多一群人还在操场上玩着游戏。5月25日离校&#xff…

PHP基础学习之数组使用要点

一、什么是PHP数组&#xff1f;数组 array 是一组有序的变量&#xff0c;其中每个变量都被称为一个元素。每个元素由一个特殊的标识符来区分&#xff0c;这个标识符称之为键&#xff08;也可以称之为下标&#xff09;。数组中的每个元素都包含两项&#xff1a;键和值。可以通过…

python和php可以一起用吗_Apache同时支持PHP和Python的配置方法

最近开始学着用PythonTornadoMongoDB写网站&#xff0c;兴起写了一个博客&#xff0c;觉得很有意思所以想挂在服务器上发布出去找大家一起玩。这个时候就遇到了问题。服务器是windows系统&#xff0c;安装的是Apache&#xff0c;所以需要配置Apache&#xff0c;使Apache同时支持…

CCNA课堂精简笔记

网络的三层架构:1.接入层: 提供网络接入点,相应的设备端口相对密集. 主要设备:交换机,集线器.2.汇聚层: 接入层的汇聚点,能够提供路由决策.实现安全过滤,流量控制.远程接入. 主要设备:路由器.3.核心层: 提供更快的传输速度, 不会对数据包做任何的操作OSI七层网络模型: Protocol…

PHP判断客户端的浏览器类型

转载链接:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0516/13461.html #判断浏览器语言&#xff1a; if ($_SERVER[HTTP_ACCEPT_LANGUAGE]"zh-cn") {$c_lang"GB";echo 您的系统语言为<b>简体中文</b>,系统将自动选择程序语言为…

高考七年后、工作三年后的感悟

本打算端午假期发表这文章&#xff0c;后来因为文章还需要有些调整&#xff0c;工作日又比较忙&#xff0c;就到今天周三才发。随便写了近3000字&#xff0c;文章最后有免费送书活动&#xff0c;欢迎留言参与。又一年高考结束了。转眼高考过去七年了&#xff0c;工作了三年。很…

蚂蚁金服天街:OceanBase 在大促 5 年来的技术演进

为了与金融从业者、科技从业者共同探讨金融 业务的深层次问题&#xff0c;蚂蚁金服联手 TGO 鲲鹏会&#xff0c;在 12 月 8 日举办了「走进蚂蚁金服&#xff1a;双十一背后的蚂蚁金服技术支持」活动。蚂蚁金服高级技术专家天街为大家分享了《蚂蚁双 11 大促 OceanBase 核心技术…

禁止访问Apache目录

转载链接&#xff1a;http://blog.sina.com.cn/s/blog_505dd27f0100orae.html 在PHP网站开发中&#xff0c;基于WEB服务器和PHP网站程序代码的安全考虑&#xff0c;我们需要对相关的目录或者文件访问权限进行控制&#xff0c;以防止意外情况的发生&#xff0c;那么我们如何来实…

类与结构

目录 类与结构的实例比较类与结构的差别如何选择结构还是类类与结构的示例比较 结构示例 public struct Person{string Name;int height;int weightpublic bool overWeight(){//implement something}}类示例 public class TestTime{int hours;int minutes;int seconds;public…

学习 jQuery 源码整体架构,打造属于自己的 js 类库

虽然现在基本不怎么使用 jQuery了&#xff0c;但 jQuery流行 10多年的 JS库&#xff0c;还是有必要学习它的源码的。也可以学着打造属于自己的 js类库&#xff0c;求职面试时可以增色不少。本文章学习的是 v3.4.1版本。unpkg.com源码地址&#xff1a;https://unpkg.com/jquery3…

5分钟轻松教您如果组建100-500路大型拼接监控系统!

冰山融汇百家号17-07-2700:41大型监控系统如何组网&#xff0c;分布式还是集中式&#xff1f;可靠性与性价比又如何取舍&#xff1f;什么才是最合适的视频监控存储产品&#xff1f;在不同地区、行业的项目中&#xff0c;这些疑问均成为业主、专家、系统集成商等各方面共同关注的…

python中beautifulsoup_面向新手解析python Beautiful Soup基本用法

Beautiful Soup就是Python的一个HTML或XML的解析库&#xff0c;可以用它来方便地从网页中提取数据。它有如下三个特点&#xff1a;Beautiful Soup提供一些简单的、Python式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱&#xff0c;通过解析文档为用户提供需要抓取…

(转)mssql2005生成表字典

出处不详 CodeSELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder 1 THEN d.name ELSE END AS 表名, CASE WHEN a.colorder 1 THEN isnull(f.value, ) ELSE END AS 表说明, a.colorder AS 字段序号, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id, a.name, IsIdenti…

表操作

2019独角兽企业重金招聘Python工程师标准>>> 字段修改 alter table TA drop partition (day<2018-12-10); ALTER TABLE TB ADD COLUMNS (userStatus String) CASCADE; ALTER TABLE TC change appversion appCommonVersion String CASCADE; ALTER TABLE TD DROP C…

KindEditor js 路径修改及表单提交注意事项

参考资料&#xff1a;http://www.kindsoft.net/docs/usage.html 在具体项目中&#xff0c;往往需要将js统一管理&#xff0c;如放置同一目录js中&#xff0c;那么对应的kindeditor的调用脚本也要跟着变&#xff1a; 目录结构&#xff1a; |--program |--|--html |--|--|--i…

学习underscore源码整体架构,打造属于自己的函数式编程类库

前言上一篇文章写了 jQuery整体架构&#xff0c;学习 jQuery 源码整体架构&#xff0c;打造属于自己的 js 类库虽然看过挺多 underscore.js分析类的文章&#xff0c;但总感觉少点什么。这也许就是纸上得来终觉浅&#xff0c;绝知此事要躬行吧。于是决定自己写一篇学习 undersco…

python xlsx 大文件_Python这样操作能存储100多万行的xlsx文件!Python让你事半功倍!

(1) 如果excel文件是xls&#xff0c;2003版的&#xff0c;使用xlrd和xlwt库来对xls文件进行操作(2) 如果excel文件是xlsx&#xff0c;2007以上版的&#xff0c;使用openpyxl库来对xlsx文件进行操作Tips:xlrd、xlwt和openpyxl非python自带库&#xff0c;需要进行安装&#xff0c…

linux 如何在命令行下改系统时间

我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2009年6月1日的命令如下。   #date -s 06/01/2009 或#date -s 20090601 将系统时间设定成下午15点43分0秒的命令如下。   #date -s 15:43:00   注意&#xff0c;这里说的是系统…

拓扑目的 1.Pc9通过van3访问pc10 2.Pc9通过Vlan1\Vlan2访问pc11

1拓扑图2设置路由器R12的接口的IPint g0/0/0ip address 192.168.20.254 24undo shutdown int g0/0/01ip address 192.168.1.1 24undo shutdownint g2/0/00ip address 192.168.3.1 24undo shutdown 3设置路由器R10的接口的IPint g0/0/0ip address 192.168.2.1 24undo shutdownin…

PHP 发送Email的几种方法

转载链接&#xff1a;http://blog.009it.com/php/75.html 在php中发送Email可以直接调用系统的mail()函数来完成&#xff0c;但是前提是你在php.ini文件中对mail都已经配置好了&#xff0c;以下为相关的配置信息&#xff1a; [mail function] ; For Win32 only. SMTP localho…