ASP.NET页面间数据传递小结

ASP.NET页面间数据传递的策略详解.txt 在Web应用开发中,页面间的值传递是实现状态维持和数据交互的基本需求。ASP.NET框架提供了多种机制来完成这一任务,包括Query String、Session对象、ViewState、Cookie、Server.Transfer、Application、Cache对象以及Form域、HiddenField、Profile与自定义Control State等。这些技术各有特点和适用场景,通过它们可以有效地在页面间共享数据和传递参数,同时保证用户操作的连贯性和数据的安全性。 阅读详情

ASP.NET较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发ASP.NET的基于Web页面的应用程序了。

  一般稍微庞大的ASP.NET程序至少拥有二个或以上的Web页面,程序员在开发类似ASP.NET应用程序时一般都需要处理在多个Web页面传递数据的问题。我们知道ASP.NET程序中的各个Web页面类似于Windows应用程序中的Form窗体,但ASP.NET程序中的各Web的组织结构比起Windows应用程序中各Form窗体要显得松散许多。Windows应用程序中的各Form窗体间数据传递可以通过定义全局变量(Public static 变量)等方法来实现。而这些方法却无法用以ASP.NET中各Web页面数据传递,所以就必须寻找另外的方法。本文就来介绍二种可以实现ASP.NET中各Web页面数据传递的方法:第一种方法是使用QueryString,第二种方法是使用Session。

align="right" marginwidth="0" marginheight="0" src="http://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html" frameborder="0" width="360" scrolling="no" height="300">  一.本文程序设计和运行的软件环境:

  (1).微软公司视窗2000服务器版。

  (2).Visual Studio .Net正式版,.Net FrameWork SDK版本号3705。

  二.使用QueryString实现Web页面间数据传递:

  QueryString实现Web页面间传递数据是一种比较老的方法,在ASP时就是使用这种方法实现不同Web页面间数据传递的。这种方法的最大的优点就是简单,但其缺点也是非常明显的,就是其安全性比较差,具体表现在从源页面向目标页面传递数据时,页面间传递的数据将会显现在目标页面的地址栏中,具体可见图05中的地址栏。还有使用QueryString只能在页面间传递数量有限的数据,并且不可以传递Object类型的数据。以下就是ASP.NET页面间数据传递的具体实现步骤,所使用的开发工具是Visual Studio .Net,开发语言是C#。实现的功能是把源页面(WebForm1.aspx)中的二个TextBox中的数据传递到目标页面中,并通过目标页面(WebForm2.aspx)中的二个Label显示从源页面中传递来的数据:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual C#项目】。

  4. 将【模板】设置为【ASP.NET Web 应用程序】。

  5. 在【位置】的文本框中输入"http://localhost/WebApplication4"。然后单击【确定】按钮,这样在Visual Studio .Net就会在当前项目文件所在目录中建立一个名称为"WebApplication4"文件夹,里面存放是此项目的项目文件,项目中的其他文件存放的位置是计算机Internet信息服务的默认的Web站点所在的目录中新建的一个名称为"WebApplication4"的文件夹中。具体如图01所示:


图01:新建一个ASP.NET项目对话框

  6. 单击菜单【项目】|【添加Web窗体】,则弹出的【添加新项】对话框,将对话框【模板】设置为【Web窗体】,在【名称】文本框中输入"WebForm2.aspx"后单击【打开】按钮,则在此项目中加入另外一个新的窗体"WebForm2.aspx",具体如图02所示:


图02:【添加新项】对话框

7. 把Visual Studio .Net的当前页面设置为WebForm1.aspx页面的设计界面,并从【工具箱】中的【Web窗体】选项卡中往WebForm1.aspx页面中拖入下列组件,并执行相应的操作:

  二个TextBox组件,分别用来输入向目标窗体传递的数据。

  一个Button组件,用以实现源页面向目标页面传递数据,并在这个Button组件拖入WebForm1.aspx设计页面后,双击它,则系统会在WebForm1.aspx..cs文件中自动产生这个组件的Click事件对应的处理代码。WebForm1.aspx设计后的页面如图03所示:


图03:WebForm1.aspx设计后的页面

  8. 把Visual Studio .Net的当前页面设置为WebForm2.aspx页面的设计界面,并从【工具箱】中的【Web窗体】选项卡中往WebForm2.aspx页面中拖入下列组件,并执行相应的操作:

  二个Label组件,用以显示源页面向目标页面传递的数据。

  双击WebForm2.aspx设计页面,则系统会在WebForm2.aspx..cs文件中自动Page页面的Load事件对应的处理代码。程序将在此事件中接收源页面向目标页面传递来的数据,并通过Lable组件显示出来。WebForm2.aspx设计后的页面如图04所示:


图04:WebForm2.aspx设计后的页面

  9. 把Visual Studio .Net的当前窗口切换到WebForm1页面的代码编辑窗口,即:WebForm1.aspx.cs文件的编辑窗口。用下列代码替换WebForm1.aspx.cs中的Button1组件的Click事件对应的处理代码,下列代码的功能是实现源页面向目标页面传递数据:

private void Button1_Click ( object sender , System . EventArgs e )
{
string sUrl;
//定义一个字符串,此字符串中包含源页面向目标传递的数据
sUrl = "WebForm2.aspx?name=" +
TextBox1 . Text + "&email=" +
TextBox2 . Text ;
//从源页面中获得传递的数据
Response . Redirect ( sUrl ) ;
//向目标页面传递数据
}


  10. 把Visual Studio .Net的当前窗口切换到WebForm2页面的代码编辑窗口,即:WebForm2.aspx.cs文件的编辑窗口。用下列代码替换WebForm2.aspx.cs中Page的Load事件对应的处理代码,下列代码的功能是从源页面中接收数据,并通过相应组件显示接收到的数据:

private void Page_Load ( object sender , System . EventArgs e )
{
Label1 . Text = Request . QueryString [ "name" ] ;
//使用QueryString从源页面中接收name变量数据,并通过Label1显示
Label2 . Text = Request . QueryString [ "email" ] ;
//使用QueryString从源页面中接收email变量数据,并通过Label2显示
// 在此处放置用户代码以初始化页面
}


  11. 至此第一种实现ASP.NET页面间数据传递的方法就介绍完了,此时单击快捷键【F5】运行程序,并在第一个页面中二个TextBox组件分别输入"阿虎"、"ahah@etang.com "后,具体如图05所示,再单击页面中的Button1按钮,则会得到图06所示的页面,可见的确把源页面中的数据传递到了目标页面中:


图05:运行页面01


图06:运行页面02

三.使用Session实现Web页面间数据传递:

  Session会话是编写网页时经常遇到的概念,使用Session传递数据虽然可以克服在使用QueryString时的缺点,但大量的使用则有可能导致服务器的瘫痪,尤其是浏览量非常大的页面,使用Session就尤其要注意。解决的办法就是Session使用结束后,必须清除。以下就是在ASP.NET中使用Session传递数据的一般步骤,使用的开发工具是Visual Studio .Net,语言是C#:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【Visual C#项目】。

  4. 将【模板】设置为【ASP.NET Web 应用程序】。

  5. 在【位置】的文本框中输入"http://localhost/session"。然后单击【确定】按钮,这样在Visual Studio .Net就会在当前项目文件所在目录中建立一个名称为"session"文件夹,里面存放是此项目的项目文件,项目中的其他文件存放的位置是计算机Internet信息服务的默认的Web站点所在的目录中新建的一个名称为"session"的文件夹中。具体如图07所示:


图07:新建一个ASP.NET项目对话框

  6. 按照QueryString实现步骤中的第六步来操作,在session项目中新建一个Web页面,名称为"WebForm2.aspx"。

  7. 按照QueryString实现步骤中的第七步来操作,在WebForm1.aspx页面中创建二个TextBox组件、一个Button组件,并在WebForm1.aspx.cs中创建此Button组件的Click事件对应的处理代码。

  8. 按照QueryString实现步骤中的第八步来操作,在WebForm2.aspx页面中创建二个Label组件,并在WebForm2.aspx.cs中创建此Page页面的Load事件对应的处理代码。

  9. 把Visual Studio .Net的当前窗口切换到WebForm1页面的代码编辑窗口,即:WebForm1.aspx.cs文件的编辑窗口。用下列代码替换WebForm1.aspx.cs中的Button1组件的Click事件对应的处理代码,下列代码的功能是使用Session实现源页面向目标页面传递数据:

private void Button1_Click ( object sender , System . EventArgs e )
{
Session [ "name" ] = TextBox1 . Text ;
//创建Session变量,用以存放TextBox1组件中的数据
Session [ "email" ] = TextBox2 . Text ;
//创建Session变量,用以存放TextBox2组件中的数据
Server . Transfer ( "WebForm2.aspx" ) ;
//向目标页面传递数据,如果你是其他页面则替换上面的WebForm2.aspx
}

  10. 把Visual Studio .Net的当前窗口切换到WebForm2页面的代码编辑窗口,即:WebForm2.aspx.cs文件的编辑窗口。用下列代码替换WebForm2.aspx.cs中Page的Load事件对应的处理代码,下列代码的功能是从源页面中接收数据,并通过相应组件显示接收到的数据,并清除创建的Session变量:

private void Page_Load ( object sender , System . EventArgs e )
{
Label1 . Text = Session [ "name" ] . ToString ( ) ;
Label2 . Text = Session [ "email" ] . ToString ( ) ;
//从源页面中接收数据,显示出来
Session . Remove ( "name" ) ;
Session . Remove ( "email" ) ;
//清除创建的Session的变量
// 在此处放置用户代码以初始化页面
}

  11. 至此在ASP.NET使用Session实现Web页面间数据传递的方法就介绍完了,此时单击快捷键【F5】运行程序就可以得到如图05和图06所示的运行界面。

   四.总结:

  本文介绍了二种在ASP.NET这实现Web页面间数据传递的方法,即:QueryString和Session。这二种方法可由千秋又各自拥有无法克服的缺点。总结起来就是QueryString相当简单,Session相对复杂;QueryString安全性差,Session安全性高;QueryString可实现各Web页面简单数据传递,一般就是字符串类型,Session可实现各Web页面间复杂类型数据的传递等等。当然在ASP.NET中实现Web页面数据传递的方法除了上述方法,肯定还可能存在其他更好、更简单的,如有机会,希望能够共同探讨

ASP.NET页面数据传递详解 在构建动态网站和Web应用程序时,页面间的数据传递是一项基础且关键的技术。不同的页面传值方法适用于不同的场景,包括QueryString、Form POST、Session、ViewState、Cookie、TempData、Application、Cache以及Server.Transfer等。这些技术各有特点,例如QueryString适用于简单的数据传递,而Session则用于管理用户会话状态。 阅读详情

相关推荐

1.3 重叠因子:希尔伯特变换趋势线(Hilbert Transform - Instantaneous Trendline)概念与Python实战

希尔伯特变换趋势线(Hilbert Transform - Instantaneous Trendline)是一种基于希尔伯特变换的高级技术分析工具。它使用数字信号处理技术来识别价格的主导周期,并生成一条平滑的趋势线。这种方法可以有效过滤市场噪音,提供更准确的趋势信号。

Kewin的博客 2084

在aspx总怎么给所调用的ascx传参数

在ascx.cs中写上一个public属性如string _value;public string Value{   get   {      return _value;   }   set   {     _value = value;   }} ">网页里加载: ">  ">///如: 如: ">Control tmpControl = this.Page.LoadControl("*.as

cnfengxx的专栏 1357

零零信安:暗网分析报告——Part 4 商业黑客组织,“流星街”的原住

暗网,作为互联网的一部分,充满了神秘而又复杂的活动。更重要的是,其背后的主要参与者——商业黑客和各种有组织的犯罪集团,揭示了这是一个怎样的世界。本报告将试图带您了解这些原住民的身份、行为方式、商业逻辑、受害者以及他们构建的独特生态。

miffy_00sec的博客 635

asp.net参数之间传递方法总结(修改了几处错误)

同一页面.aspx与.aspx.cs之间参数传递 1.    .aspx.cs接收.aspx的参数:由于.aspx和.aspx.cs为继承关系,所以.aspx.cs可以直接对.aspx中的ID进行值提取,具体语句为 string b = a.text; 其中a为.aspx中的文本框即控件的ID; 2. .aspx接收.aspx.cs的变量:将.aspx.cs的变量设为全局变量,在.as

Goldxwang的博客 2679

从LLaMA到LLaMA-MoE:轻量级混合专家模型构建与实战指南

混合专家(Mixture-of-Experts, MoE)是一种先进的神经网络架构,其核心原理是通过门控网络动态地为不同输入选择不同的专家子网络进行计算,从而实现模型容量的指数级扩展,同时保持推理时的计算量基本不变。这种稀疏激活的特性赋予了MoE极高的技术价值,使其成为解决大模型训练与推理成本矛盾的关键技术之一,在自然语言处理、多模态学习等场景中展现出巨大潜力。本文聚焦于**LLaMA-MoE**这一具体实践,深入探讨了如何基于成熟的稠密模型(如LLaMA),通过**专家构建**与**持续预训练**两大关键

weixin_28730549的博客 565

海光(hygon)CPU ESXI vSphere 紫屏问题修复记录

海光服务器ESXI 紫屏问题修复

edison202302的博客 3552

Asp.net页面之间传递参数的几种方法

第一种方法:通过URL链接地址传递 send.aspx:  protected void Button1_Click(object sender, EventArgs e)    {        Request.Redirect("Default2.aspx?username=honge");    } receive.aspx: string username = Request.QueryS

719

MobilenetV1、V2、V3系列详解

Mobilenet系列模型作为当前主流的端侧轻量级模型被广泛应用,很多算法都会使用其作为backbone提取特征,这一章对Mobilenet系列模型V1,V2,V3做一个总结。

turned的博客 1万+

Aspx 前后端传参

//后台定义全局的变量 ,在Page_Load时候传参 //前端用<%="后端变量"%> 取值 <script 中同样可用 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication3._Default" %&gt...

softuse的博客 1389

清华电子系保研面试全记录:五轮硬核考核+工程硕博专项解析(附真题)

本文详细解析了清华大学电子工程系保研面试的完整流程,重点剖析了其标志性的五轮专业面试(涵盖电路、电磁场、信号系统、计算机与AI)和综合组群面,并深入解读了工程硕博改革专项的考核要点与备战策略。文章提供了各专业组的真题示例与应对方法,旨在帮助电子信息相关专业学子系统准备,从容应对这场高强度的知识与综合素质挑战。

u0v1w2x3的博客 587

VASP能带计算避坑指南:从CHGCAR读取失败到成功解决的全过程

本文深度解析VASP能带计算中常见的“CHGCAR读取失败”报错,并提供从静态自洽到非自洽计算的全流程避坑指南。核心解决方案包括使用CONTCAR替代POSCAR、调整SYMPREC参数以处理对称性判定问题,并推荐利用vaspkit工具自动化生成输入文件,确保计算流程稳健高效。

weixin_29245767的博客 770

ASP.NET页面间数据传递小结,浅谈ASP中Web页面间的数据传递

 ASP.NET页面间数据传递小结ASP.NET较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发ASP.NET的基于Web页面的应用程序了。  一般稍微庞大的ASP.NET程序至少拥有二个或以上的Web页面,程序员在开发类似ASP.NET应用程序时一般

he_qian_jin的专栏 1544

解放双手:用KUKA示教器白键一键触发复杂工艺,自定义你的快捷指令

本文详细介绍了如何利用KUKA示教器的工艺白键功能,通过自定义快捷指令一键触发复杂工艺,显著提升自动化产线效率。文章涵盖UserTech技术栈解析、KRL脚本封装、人机交互视觉工程及工业实战策略,帮助工程师实现机械臂操作的高阶优化。

weixin_30379531的博客 432

ASP.NET 页面间数据传递方法小结

Web 页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。0、引言 Web 页面是无状态的,服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。在用Asp.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确、安全和高效地传送,As

x060402228的专栏 221

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ASP.NET页面间参数传递

ASP.NET较ASP最大的优点,也是其受到越来越多程序员的欢迎的主要原因就是,ASP.NET为开发者提供了事件驱动的开发模式,从此程序员可以像利用可视化编程工具开发Windows应用程序一样来开发ASP.NET的基于Web页面的应用程序了。  一般稍微庞大的ASP.NET程序至少拥有二个或以上的Web页面,程序员在开发类似ASP.NET应用程序时一般都需要处理在多个Web页面传递数据的问题。

liang_binglian的专栏 3416

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ASP.NET页面间数据传递的方法总结

【经典实用知识大补习】  ASP.NET页面间数据传递各种方法总结 ASP.NET程序员在行业里被认为有一大群不专业的!实际情况也确实如此,我自己调查的结果是,5个开发ASP.NET的面试人员中,经验超过3年的,竟然没有一个人能完整说明ASP.NET框架下数据传递的各种方法,最

Kimi - 要【博】就搏精彩,是【客】就写原创。 1182

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ASP.NET页面间传值的几种方式

1。使用QueryString      使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下:1,使用控件创建web表单(form)2,创建可以返回表单的按钮和链接按钮3,在按

MicrosoftCenterOfHN的专栏 3万+

ASP.NET页面间数据传递的几种方法

<br /><br /><br /><br />本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性。<br /><br /><br />0、引言<br /><br /><br />Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确、安全和高效地传送,A

dongdongleng的专栏 882

ASP.NET中实现页面间数据传递的方法

在做WEB开发时,很多地方会涉及到页面间的数据传递。这几天在完善教务基础系统,遇到了这个问题,上网查了一些资料,现总结如下:   说到页面间数据传递,很多人都会想到通过像Session这样的全局变量,但是向Session中添加的东西太多会增加服务器的压力,页面间数据传递,数据的作用范围越小越好。   ASP.NET页面间数据传递的各种方法和分析   1.使用Querystring ...

aiyuangou7615的博客 335

ASP.NET中用javascript实现页面间传递数据的方法

在做ASP.NET项目开发时,经常要在页面间传递数据,如选择一个客户等.要实现数据的传递,不管是用服务端实现也好,客户端实现也好,有很多种方法可以实现这样的功能.在我所做过的几个项目中,就实际情况实现这样的功能用过好多方法,但我个人还是喜欢用以下的方法去实现页面间传递数据,尤其是对于数据不是很多的情况下.如要选择一个客户,需要用到的数据是CustomerID和CustomerName,Cust

Jason Zhang的专栏 1713

ASP.NET页面间数据传递的方法

本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性。0、引言Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确、安全和高

545

asp.net中常用的几种页面间传递参数的方法,并说出他们的优缺点

在Web 应用程序中,页面之间交换数据(传值)是一种基本应用,它的实现效率对程序性能有直接的影响。传统的解决方案是通过Get 或Post 方法来实现的。但在ASP.NET 中,这2 种方法的使用发生了变化。因为ASP.NET 使用了基于事件驱动的编程模型,页面采用了PostBack 技术(发回给自己),一些传统的方法必须做出一定的调整才能适应它。同时, ASP.NET 以其优秀的架构提供了更多可用

ningyb 4147

ASP.NET 页面间数据传递的方法

在做WEB开发时,很多地方会涉及到页面间的数据传递。这几天在完善教务基础系统,遇到了这个问题,上网查了一些资料,现总结如下:   说到页面间数据传递,很多人都会想到通过像Session这样的全局变量,但是向Session中添加的东西太多会增加服务器的压力,页面间数据传递,数据的作用范围越小越好。   ASP.NET页面间数据传递的各种方法和分析   1.使用Querystring ...

aiyuangou7615的博客 158
上一篇: Web程序中网页间数据传递方法小结
下一篇: ASP.NET中使用web.config配置web应用程序中的数据库连接
doublewang
博客等级 码龄21年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值