前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Asp.net如何实现页面间的参数传递

Asp.net如何实现页面间的参数传递

作者头像
Java架构师必看
发布于 2021-03-22 03:29:24
发布于 2021-03-22 03:29:24
2.4K00
代码可运行
举报
文章被收录于专栏:Java架构师必看Java架构师必看
运行总次数:0
代码可运行

使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下: 1,使用控件创建web表单(form) 2,创建可以返回表单的按钮和链接按钮 3,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量 4,在保存的URL里添加QueryString参数 5,使用Response.Redirect重定向到上面保存的URL 下面的代码片断演示了如何实现这个方法: 源页面代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 private void Button1_Click
 (object sender, System.EventArgs e)
 {
 string url;
 url="anotherwebform.aspx?name=" + TextBox1.Text + "&email=" + TextBox2.Text;
 Response.Redirect(url);
 }

目标页面代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 private void Page_Load
 (object sender, System.EventArgs e)
 {
 Label1.Text=Request.QueryString["name"];
 Label2.Text=Request.QueryString["email"];
 }

使用Session变量 使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下: 1,在页面里添加必要的控件 2,创建可以返回表单的按钮和链接按钮 3,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里 4,使用Response.Redirect方法重定向到另一个页面 5,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它 下面的代码片断演示了如何实现这个方法: 源页面代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

 private void Button1_Click
 (object sender, System.EventArgs e)
 {
 //textbox1 and textbox2 are webform
 //controls
 Session["name"]=TextBox1.Text;
 Session["email"]=TextBox2.Text;
 Server.Transfer("anotherwebform.aspx");
 }

目标页面代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

 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");
 }

使用Server.Transfer 这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下: 1,在页面里添加必要的控件 2,创建返回值的Get属性过程 3,创建可以返回表单的按钮和链接按钮 4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面 5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了 以下代码综合实现上述步骤过程的代码: 源页面代码: 把以下的代码添加到页面中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

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

然后调用Server.Transfer方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

 private void Button1_Click
 (object sender, System.EventArgs e)
 {
 Server.Transfer("anotherwebform.aspx");
 }
 目标页面代码:
 private void Page_Load
 (object sender, System.EventArgs e)
 {
 //create instance of source web form
 WebForm1 wf1;
 //get reference to current handler instance
 wf1=(WebForm1)Context.Handler;
 Label1.Text=wf1.Name;
 Label2.Text=wf1.EMail;
 }

在ASP.NET 2.0中启用了跨页面传送功能,其功能和用法在以后在做介绍!

页面之间传递值

方式1: 在接收页 的html代码里加上一行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <%@ Reference Page = "WebForm1.aspx" %>           
 
     WebForm1 fp=(WebForm1)Context.Handler;
     this.TextBox1.Text=fp.name;   //name 是第一页的public变量

Context  提供对整个当前上下文(包括请求对象)的访问。您可以使用此类共享页之间的信息。

方式2:GET方式     在发送页

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public int sum=0;
int i =int.Parse(this.TextBox1.Text)*2;
Server.Transfer("WebForm2.aspx?sum="+i);

    接收页

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

         this.TextBox1.Text=Request["sum"].ToString();
     or  this.TextBox1.Text=Request.Params["sum"].ToString();
         this.TextBox1.Text=Request.QueryString["sum"]

方法3:全局变量

   发送页:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Application["sum"]=this.TextBox1.Text;
Server.Transfer("WebForm2.aspx");

   接收页:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.TextBox1.Text=(string)Application["sum"];

Application实质上是整个虚拟目录中所有文件的集合,如果想在整个应用范围内使用某个变量值,Application对象将是最佳的选择

在这里用Session[""]的方法雷同

方法4:

 发送页:     1.定义静态变量:  public static string str="";     2. str=this.TextBox1.Text;        Server.Transfer("webform2.aspx");  接收页:     1.引入第一页的命名空间:using WebApplication1;     2  this.TextBox1.Text=WebForm1.str;

本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ASP.NET 2.0页面框架的几处变化
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
1.4K0
ASP.NET保持用户状态的九种选择
摘要:ASP.NET为保持用户请求之间的数据提供了多种不同的途径。你可以使用Application对象、cookie、hidden fields、Sessions或Cache对象,以及它们的大量的方法。决定什么时候使用它们有时很困难。本文将介绍了上述的技术,给出了什么时候使用它们的一些指导。尽管这些技术中有些在传统ASP中已经存在,但是有了.NET框架组件后该在什么时候使用它们发生了变化。为了在ASP.NET中保持数据,你需要调整从先前的ASP中处理状态中学习到的知识。
Java架构师必看
2021/03/22
1.9K0
.net 登陆代码
    protected void Button1_Click(object sender, EventArgs e)     {         string myconnectionstring = System.Configuration.ConfigurationManager.AppSettings["connstr"];         string mycommandstring = "SELECT * FROM who where who_name=" + "’" + TextBox1.Text + "’" + "and who_pwd = " + "’" + TextBox2.Text+ "’";         SqlConnection myconnection = new SqlConnection(myconnectionstring);         SqlCommand mycommand = new SqlCommand(mycommandstring, myconnection);         myconnection.Open();         SqlDataReader myreader = mycommand.ExecuteReader();         if (myreader.Read())         {           Session["name"] = myreader["who_name"].ToString();           Response.Redirect("postdoing.aspx");         }         else         {             Response.Write("<script>alert(‘用户名或密码不正确,请重新登陆’);</script>");             Response.Redirect("login.aspx");         }     }
Tony老师
2020/03/05
7700
ASP.NET重用代码技术 – 代码绑定技术
作者:苏红超   导读 代码绑定是ASP.NET提供的一个重要的新技术。本文将会为您展示如何数据库
Java架构师必看
2020/10/26
4.3K0
资料验证的asp.net程序
Validator(资料验证)控制元件Email:ControlToValidate=EmailC#
Java架构师必看
2021/03/22
1.9K0
asp.net 跳转页面[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。①response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。 实例 Example that uses Redirect [C#; ASP.NET]
全栈程序员站长
2022/09/13
3.4K0
页面之间传递参数的几种方法荟萃
  protected void Button1_Click(object sender, EventArgs e)
Java架构师必看
2021/03/22
1.4K0
C#页面之间跳转功能的小结
引言   ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事情,在使用事件驱动编程模型的ASP.NET就不是那么容易了,当然了,我们仍然有一些方法可以实现同样的功能。本文将试着使用不同的可能的方法来解决这个问题,但可以预见是,本文将包含使用querystring,session变量以及server.Transfer方法来实现页面间的值传递。
aehyok
2019/02/25
4.1K0
asp.net(c#)网页跳转几种方法小结「建议收藏」
在asp.net下,经常需要页面的跳转,下面是具体的几种方法。跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于.net中response.redirect sever.execute server.transfer 三种页面跳转的方法
全栈程序员站长
2022/09/09
2.4K0
ASP.NET中页面传值技巧
在ASP.NET中有几种基于页面间的传值方法:常见的有QueryString.这种方法最简单不过了,
Java架构师必看
2021/03/22
2.6K0
ASP.NET中使用UpdatePanel实现局部异步刷新方法和攻略「建议收藏」
转载自:ching126,http://blog.csdn.net/chenhongwu666/article/details/41392529
全栈程序员站长
2022/09/15
2.3K0
ASP.net数据库相关操作
这是asp一个web相关代码,包括exp1.aspx主文件,修改页面UserEdit.aspx,以及登陆界面login.aspx. 原始代码---百度云 任务完成代码---百度云 主文件,c#相关代码,采用的是access数据库。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
热心的社会主义接班人
2018/04/27
4.2K0
ASP.net数据库相关操作
asp.net中Session小例子
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159514.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/19
9550
asp.net中Session小例子
Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由
以前在做asp的时候,要把 /default.asp?id=123映射成/default/123,需要借助IISRewriter这个组件,到了asp.net以后,可以用代码写了,但是个人觉得很麻烦,要
菩提树下的杨过
2018/01/22
7390
Asp.Net4.0/VS2010新变化(3):webform中也可以直接url路由
C#之玩转ASP.NET的内置对象
用于响应用户请求并发送数据到客户端。 两个页面 Response.Redirect();跳转页面并传递数据也叫重定向
用户9857551
2022/06/28
1K0
C#之玩转ASP.NET的内置对象
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC
系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)—
葡萄城控件
2018/01/10
3.2K0
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC
C#进阶-ASP.NET常用控件总结
ASP.NET Panel 控件用于将一组控件组织在一起,并可以通过控件的 Visible 属性来控制它们的可见性。
Damon小智
2024/03/15
1820
C#进阶-ASP.NET常用控件总结
【自然框架】 页面里的父类—— 改进和想法、解释
1、 从Control到GridView继承了多少层? (这个图可不是现做的,这是以前为了写QuickPager分页控件而弄的。http://www.cnblogs.com/jyk/archive/
用户1174620
2018/02/26
1.2K0
【自然框架】 页面里的父类—— 改进和想法、解释
【9】分页浏览的管理
阅读目录 分页关注的内容 状态的传递 数据的获取 查询结果的分页 跳页的实现 分页器的样式 页面的完整处理流程 分页关注的内容 前面博文中,通过自行构造HTML表格代码,可以生成易于管理、易于扩展的数据列表。但在实际应用中,数据量动则成百上千,单一页面根本无法完全显示所有数据。把所有数据进行分页后逐页显示,是当前比较流行的数据展示方式。因此,我们需要研究和表格方式展示数据相适应的分页管理机制。 分页显示的核心,是根据页面记录数、页号、查询条件、排序顺序等因素,在数据库中查出该页相对应的数据集(
用户1075292
2018/01/23
1.2K0
【9】分页浏览的管理
我看AutoEventWireup
下面,着重说一下AutoEventWireup。大家可能不太注意这个,系统自动生成的一般我们情况下不用考虑,下面我们通过一个例子看一下这到底是什么?
全栈程序员站长
2022/09/01
7780
相关推荐
ASP.NET 2.0页面框架的几处变化
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文