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

asp.net页面与页面之间传参数值方法(post传值和get传值) 主要介绍了asp.net页面与页面之间传参数值方法,说明了post传值和get传值的使用方法,需要的朋友可以参考下 立即下载

这个新特性意味着ASP.NET2.0开发人员目前有三种可供选择的技术来将数据从一个web页面传送到另外一个页面。这三种方法是:响应重定向,服务端传输和新的跨网页提交特性。我们可以已经熟悉前两种技术了,因此,我们只是简要地复习一下它们,然后我们会将主要精力放到学习如何使用跨网页提交特性,以及阐述一下这种方法和响应重定向以及服务传输方式有什么不同。

 

  一、响应重定向方法

  响应重定向方法是目前为止将一个网页重定向到另一个网页的最简单的方法的最简单的方法。当Web服务器接到一个重定向请求后,它会将一个响应头送给客户端,这将导致客户端发送一个新的请求到服务器。按句话说,一个重定向请求实际上是两个请求响应:一个是最初的请求响应,另一个是新的重定向请求响应。

  在ASP.NET中实现重定向很容易。下面的代码演示了如何使用Response.Redirect方法实现网页重定向:

   protected void Redirect_Click(object sender, EventArgs e) 
  
{
      Response.Redirect(
"menu.aspx"); 
  }

 

    要注意的是重定向请求只是一个GET请求,这就意味着我们不能从源页中通过重定向命令提交数据。但是我们可以在重定向中使用查询字符串来传递数据。如下面代码所示:

   protected void Redirect_Click(object sender, EventArgs e) 
  
{
            Response.Redirect(
"menu.aspx?userName=" + UserName.Text)); 
      }


  上面的例子将一个查询字符串作为参数传递给了Response.Redirect方法的目标URL。我们可以通过如下的代码获得源数据。

      protected void Page_Load(object sender, EventArgs e) 
  
{
        
string userName = Request["userName"]; 
      }

 

      二、服务器传输方法

  和依赖于客户端向另一个新页发请求不同,服务器传输是一种服务器重定向技术,这种技术通过简单的改变Web服务器所处理的代码来达到请求一个新页的目的。当被请求页和源页面在同一个服务器时,服务器传输要比Response.Redirect方法更有效,这是由于这种技术可以避免额外的开销,仅仅使用服务器的资源就可以进行重定向。要注意的这种技术有一个副作用,在页面进行重定向时,客户端的URL仍然会保持源页面的URL,这可能会使客户认为他们所获得的数据是源页面产生的。当然,在大多数情况下,这不是问题,但是这将使调试变得更困难。

  Server.Transfer方法还可以保存初始页的HttpContext。因此,目标页可以访问源页面的值。我们可以使用FormsCollection属性来从目标页面中获得源页面的值。首先,要确定我们使用了被重载的方法,这个方法有两个参数:目标URL和一个Boolean类型的值,告诉服务器是否保存用于描述源页面值的Form。如下面的代码所示:

   Server.Transfer("Menu.aspx",true);
  然后,我们在目标页面中获得一个叫txtUserName的Textbox控件的值的代码如下:
   object obj = Request.Form["txtUserName"];

  三、Response.Redirect和Server.Transfer的比较

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

  四、跨页提交概述

  在ASP.NET 2.0中,我们可以通过实现IbuttonControl接口提交给不同的WebForm,来实现跨网页的提交。和Response.Redirect类似,跨网页提交是一个基于客户端的传输机制,但也有点象Server.Transfer,目标网页也可以访问源网页的数据。为了使用跨网页提交,我们需要在源网页中的PostBackUrl属性中指定目标URL。

  五、实现跨网页提交

  这部分将讨论一下如何在ASP.NET2.0中实现跨网页提交。为了开始我们的学习,假设有两个Web页,一个是源Web页,另一个是目标Web页。在源网页中初始化了使用按钮进行的跨网页提交操作。我们首先必须设置目标网页按钮的PostBackUrl属性,顺便说一句,所有实现了System.Web.UI.WebControls.IbuttonControl接口的Web控件都有跨网页提交的特性。下面的代码将演示这一过程。

   PostBackUrl="~/target.aspx" text = "Post to a target page"/>
  当我们设置PostBackUrl属性时,ASP.NET框架将相应的控件绑定到一个新的叫WebForm_DoPostBackWithOptions的JavaScript函数,产生的Html代码如下:

   onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSubmit", "", false, "","Target.aspx", false, false))" id="btnSubmit" />

  对于上面的html代码来说,当用户单击按钮时,浏览器将提交目标URL(Target.aspx),而不是源URL。

六、从目标页面中获得源页面控件的值

  ASP.NET2.0提供了一个叫PreviousPage的新的属性,这个属性无论在何时当前页面进行跨网页提交操作时都会指向源页面。要注意的是,当源页面和目标页面在不同的应用程序中时,这个属性包含null(这个null并不是未初始化的意思)。还有要注意的是当目标网页访问PreviousPage属性时可以获得源页面的数据,ASP.NET运行时装载并执行了源页面。这将引发ProcessChildRequest事件的发生。而且,它还会引发Page_Init事件、Page_Load和任何其他的源页面按钮单击事件。

  因此,我们要避免由于不小心进行误操作,所以最好通过IsCrossPostBack属性来确认是否为一个跨网页提交发生,如果这个属性值为true,那么目标网页就是通过一个跨网页提交动作而调用的。如果是通过另外一种方式调用的(如一般的请求、Response.Redirect或是一个Server.Transfer),这个属性的值为false。下面的例子演示了如何使用这个属性。

 

 if ( PreviousPage.IsCrossPagePostBack) 
  
{
      
//执行代码
  }

//******************************************
  这个PreviousPage属性在Server.Transfer和跨网页提交中都可以使用。在ASP.NET2.0中,我们可以在调用Server.Transfer操作后使用PreviousPage属性在目标页面中来获得源页面的数据,代码如下:
*******************************************//
   { 
     Server.Transfer(
"menu.aspx"); 
   }


  
protected void Redirect_Click(object sender, EventArgs e)

  
//在这个接收面中我们现在可以获得Web页面的数据,代码如下:

   
protected void Page_Load(object sender, EventArgs e) 
  
{
    
if (PreviousPage != null)
    
{
       TextBox txtBox 
= (TextBox)
       PreviousPage.FindControl(
"txtUserName"); 
       
if (textBox != null)
       
string userName = textBox.Text; 
       
//其他可执行的代码
    }

  }



  要注意的是上面的代码必须将txtUserName控件转换为TextBox类型,以便可以访问其中的值。

 

七、使用PreviousPageType

  PreviousPageType属性提供了在跨网页操作中访问源页面的强类型能力,下面让我们演示一下如何不通过任何类型转换来从源页面中获得控件值。代码如下:

  < asp:Textbox ID="txtUserName" Runat="server" />
  < asp:Textbox ID="txtPassword" Runat="server" />
    
< asp:Button ID="Submit" Runat="server" Text="Login"PostBackUrl="Menu.aspx" />

  要注意的是单击按钮可以重定向到一个叫“Menu.asp”的目标页。这个目标页可以使用如下的代码获得用户名和密码:

  八、保存视图状态

  对于跨网页提交来说,ASP.NET2.0 内嵌了一个叫__POSTBACK的隐藏字段,这个字段包含了关于源页面的视图信息 -- 也就是由源页面提供了,包含了一个带有一个非空PostBackUrl属性值的服务端控件。目标页可以使用__POSTBACK中的信息来获得源页面的视图状态信息。代码如下:

   if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack && 
  PreviousPage.IsValid)
  
{
       TextBox txtBox 
= PreviousPage.FindControl("txtUserName"); 
      Response.Write(txtBox.Text); 
    }

 

  在上面的代码中核对了用于确保PreviousPage属性不为null的检查代码。顺便提一下,如果目标页和源页面不在同一个应用程序中,这个PreviousPage属性的值为null。只有在进行跨网页提交操作时,IsCrossPagePostBack属性才为true。

  这个跨网页提交的特性,是ASP.NET2.0中最强有力的特性之一,这种技术将允许在一个页面中提交到另外一个页面,并且可以在目标页面地无缝地操作源页面中的数据。

【STM32】STM32 CANFD外设的几种消息接收过滤模式 在控制器区域网络(CAN)系统中,正确配置消息过滤器对于有效管理网络通信至关重要。特别是在使用Flexible Data-rate Controller Area Network(FDCAN)时,选择合适的过滤器类型可以大大提高网络效率和消息处理速度。 阅读详情

相关推荐

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例)

本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。

weixin_42552315的博客 441

ASP.NET 2.0 中跨网页提交的三种方法 come from: http://dotnet.csdn.net/page/220032f6-6c4b-4999-8558-a41b38f35fa3

当在一个ASP.NET Web页面中进行操作时,在默认情况下向当前页进行提交。这种行为在ASP.NET出现之前并没有什么关系,但在ASP.NET中当我们想向另外一个Web页提交一个Web Form时该如何做呢?在ASP.NET1.0中这个问题变得很难解决,但在ASP.NET2.0中为开发人员提供了更容易的解决的技术:跨网页提交。这种技术允许一个网页在提交数据时提交给另外的一个页面。在跨网页提交中,

863

英飞凌TC3xx的GTM模块到底有多强?从PWM生成到电机驱动,一篇讲透车载定时器核心

本文深入解析英飞凌TC3xx系列中的GTM模块在汽车电子领域的强大功能,从PWM生成到电机驱动的全链路设计。通过模块化架构和硬件级解决方案,GTM显著提升系统精度和响应速度,适用于电机控制、电源管理等复杂场景。文章结合实战经验,详细拆解GTM的技术实现和性能优势。

weixin_27741699的博客 204

Aspx 前后端传参

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

softuse的博客 1389

AD7920实战:从咪头到ADC的音频信号采集电路设计全解析(附电路图)

本文详细解析了基于AD7920 ADC芯片的音频信号采集电路设计全流程。从驻极体咪头的驱动、AD8542运放的两级增益与偏置设计,到关键的抗混叠滤波器配置,以及ADC接口的驱动缓冲与PCB布局要点,提供了完整的实战指南与电路图,帮助开发者实现高质量音频信号采集。

red88的博客 803

Python之美——Python2与Python3多版本共存

Python多版本共存的方法Python2、Python3共存的方法python2下载及环境变量配置第一步、打开Python官网,下载Python2第二步、python2环境变量配置测试结果 Python2、Python3共存的方法 方法如下: 1.先确保不同版本解释器的python.exe所在的路径在环境变量中 2.拷贝各自的python.exe并重命名即可 步骤(理解不了下面有图示): 1、首先你需要将不同的python版本安装,且都已经将跟版本的环境变量配置好了,python3和2的下载方式

chenchen5152的博客 3946

使用Cross-Page Postback(跨页面提交)在页面间传递数据

页面间传递数据的几种方法在页面间传递数据时,我们有以下几种选择:1、Query String    一个很常见的方法,Query String是URL中问号之后的那一部分。其优点在于它是轻量级的,不会给服务器带来任何负担。而它也有几个缺点:传递的信息仅限于简单的字符串,而且必须是合法的URL字符;信息是对用户是可见的,因而存在安全性问题;用户可能会尝试手动修改查询字符串,这可能是程序未

夏风鱼的专栏 934

电化学阻抗谱(EIS)在锂离子电池中的应用

摘要电化学阻抗谱(electrochemical impedance spectroscopy, EIS)是一种重要的电化学测试方法,在锂离子电池动力学反应机理研究及动力学参数测量等方面具有广泛的应用。在锂离子电池运行过程中,各反应步骤的动力学参数及时间常数不同,而EIS可以在较宽的频率范围内对体系施加小幅正弦激励信号,使得在特定频率下突出特定时间常数的电极过程,从而将复杂的电极过程分离,实现单一电极过程动力学的分析。通过对交流阻抗信息的研究,也可以为锂离子电池及其他电池的应用与管理、电化学过程设计及电极材

qiushireader的博客 2654

ASP.NET页面之间传值的五种常用方法

1、使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。 优点:1)使用简单,对于安全性要求不高时传递数字或是文本值非常有效。 缺点:1).缺乏安全性,由于它的值暴露在浏览器的URL地址中的。 2).不

不积小流无以成江海,不积跬步无以至千里 1011

让 ME51N 在采购信息记录过期时不要带出上一次采购订单的价格

在采购信息记录(PIR)价格条件无效或过期时,到上一次采购订单价格进行提议;你可以通过关闭,并在把PO price设置为不采纳,再辅以把过期的价格来源直接拦截为错误。若仍需 100% 阻断,可用在保存前清空估价价格作为技术兜底。标准行为与配置证据见文内引用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 663

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南

ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 298

ASP.NET 页面间传递参数的方法(转)

ASP.NET 页面间传递参数的方法 http://www.cnblogs.com/eoiioe/archive/2008/04/08/1142247.html 这个新特性意味着ASP.NET2.0开发人员目前有三种可供选择的技术来将数据从一个web页面传送到另外一个页面。这三种方法是:响应重定向,服务端传输和新的跨网页提交特性。我们可以已经熟悉前两种技术了,因此,我们只是简要地复...

weixin_30767921的博客 77

12、探索新型高能量密度材料:FOX-7的化学进展

本文全面探讨了新型高能量密度材料FOX-7的化学进展,包括其独特的分子结构、优异的热稳定性、光谱性质以及爆炸性能。对比传统高爆炸药RDX,FOX-7展现出更低的敏感性和更高的安全性。文章还介绍了FOX-7的合成方法、异构体研究、与其结构相关的化合物以及富氮高能材料的最新发展。通过实验和计算方法,研究人员不断优化这类材料的性能,以满足军事和工业领域的高要求。

sea99的博客 352

Asp.net中页面间传递参数方法总结

在ASP.NET中有几种基于页面间的传值方法:常见的有QueryString.这种方法最简单不过了,但缺点就是它把要传送的值显示在地址栏中,如果对于在安全性的信息来说这并不是一种好的解决方案。还有一个缺点就是它不能传对象。这种方法适合于传送一个简单的值及安全性不大重要的信息。例:   有两个页面:WebForm1.aspx,WebForm2.aspx。  在WebForm1.aspx.cs的某些事

yax405的专栏 668

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

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

ningyb 4148

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Asp.Net 页面间传递参数的方法

第一种方法: 通过URL链接地址传递 Send.aspx 1protectedvoidButton1_Click(objectsender,EventArgse) 2{ 3Request.Redirect("Default2.aspx?username=honge"); 4} receive.aspx 1stringusern...

weixin_30519071的博客 98

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: Gridview用法:根据某列的值改变gridview其他列的属性
下一篇: 让ModalPopupExtender的控制控件能响应服务器事件
Devillyd
博客等级 码龄23年 58粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值