Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
本文对常用的数据结构详述:Array, ArrayList,List,IList,ICollection, Stack, Queue, HashTable, Dictionary, IQueryabl
葡萄城控件
2018/01/10
2K0
最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
EFCore批量操作,你真的清楚吗
EntityFramework Core有许多新的特性,其中一个重要特性便是批量操作。批量操作意味着不需要为每次Insert/Update/Delete操作发送单独的命令,而是在一次SQL请求中发送批量组合指令。
心莱科技雪雁
2019/12/05
3.5K0
初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体、值类型和领域服务,也稍微讲到了DDD中的分层结构。但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的,也是我本人之前有一些疑问的地方就是Repository。我之前觉得IRepository和三层里面的IDAL很像,为什么要整出这么个东西来;有人说用EF的话就不需要Repository了;IRepository是鸡肋等等。 我觉得这些问题都很好,我自己也觉得有问题,带着这些问题我们就来看一看Repositor
用户1153966
2018/03/14
1.5K0
初探领域驱动设计(2)Repository在DDD中的应用
.NET EF Core(Entity Framework Core)
1、Entity Framework Core(EF Core)是微软官方的ORM框架。优点:功能强大、官方支持、生产效率高、力求屏蔽底层数据库差异;缺点:复杂、上手门槛高、不熟悉EFCore的话可能会进坑。 2、Dapper。优点:简单,N分钟即可上手,行为可预期性强;缺点:生产效率低,需要处理底层数据库差异。 3、EF Core是 模型驱动 (Model-Driven)的开发思想,Dapper是 数据库驱动(DataBase-Driven)的开发思想的。没有优劣,只有比较。 4、性能: Dapper等≠性能高;EF Core≠性能差。 5、EF Core是官方推荐、推进的框架,尽量屏蔽底层数据库差异,.NET开发者必须熟悉,根据的项目情况再决定用哪个。
鱼找水需要时间
2024/03/23
5450
.NET EF Core(Entity Framework Core)
Linq to Sql中Single写法不当可能引起的数据库查询性能低下
场景:需要从T_User表中返回指字条件的某条记录的某一个字段 在Linq中有二种理论上都行得通的写法,见下面的代码: Code using (dbUserDataContext db = new dbUserDataContext(Website.ConnStrdbUser))             { try {  //Guid _UserId = db.T_User.Single(c=>c.F_ID==new Guid("00000000-0000-0000-0000-000000000001"
菩提树下的杨过
2018/01/23
1.2K0
Entity Framework——并发策略
使用EF框架遇到并发时,一般采取乐观并发控制。 1支持并发检验 为支持并发检验,需要对实体进行额外的设置。默认情况下是不支持并发检验的。有以下两种方式: 方式名称 说明 时间戳注解/行版本 使用TimestampAttribute特性,实体的属性必须是byte数组类型 非时间戳注解 使用ConcurrencyCheckAttribute Fluent API 使用StringPropertyConfiguration.IsConcurrencyT
甜橙很酸
2018/04/17
1.1K0
Entity Framework 数据访问浅谈
在现代的软件开发中,数据库操作是必不可少的一部分。无论是简单的数据读取还是复杂的事务处理,都需要与数据库进行交互。在这个过程中,Entity Framework (EF) 作为 .NET 平台上的一款优秀 ORM(对象关系映射)框架,提供了强大的功能来简化数据库操作。本文将带你快速了解 EF 的基本用法,并探讨一些常见的问题以及如何避免这些错误。
Jimaks
2024/10/19
1530
Entity Framework 数据访问浅谈
.NET面试题系列[15] - LINQ:性能
当你使用LINQ to SQL时,请使用工具(比如LINQPad)查看系统生成的SQL语句,这会帮你发现问题可能发生在何处。
s055523
2018/09/14
2.6K0
.NET面试题系列[15] - LINQ:性能
Entity Framework快速入门--一对零到一关系处理
很久不更新blog了,正好趁着端午节的空,把之前一段时间使用关于EF以及工作上经验总结一下。
老马
2022/05/10
4000
Entity Framework快速入门--一对零到一关系处理
初级.NET程序员,你必须知道的EF知识和经验
注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式。 推荐MiniProfiler插件 工欲善其事,必先利其器。 我们使用EF和在很大程度提高了开发速度,不过随之带来的
逸鹏
2018/04/10
1.9K0
初级.NET程序员,你必须知道的EF知识和经验
浅析Entity Framework Core2.0的日志记录与动态查询条件
前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 本文主要是浅析一下Entity Framework Core2.0的日志记录与动态查询条件 去年我写过一篇关于Entity Framework Core1.0和1.1的日志记录和事务的文章: 一步步学习EF Core(2.事务与日志) 时过境迁..EF Core也更新到2.0了.. 在日志记录方面,有了比较大的变化..所以我觉得还是需要学习学习 正文 一、 Entity Framework Core2.
GuZhenYin
2018/03/30
1.5K0
浅析Entity Framework Core2.0的日志记录与动态查询条件
Entity Framework 简单查询
第一步还是先建立一个控制台的应用程序,然后通过Nuget添加Entity Framework。那么同时会给packages.config和App.config添加相应的配置。
aehyok
2018/09/11
8430
Entity Framework 简单查询
采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
GuZhenYin
2018/01/04
1.2K0
采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
.NET面试题系列[14] - LINQ to SQL与IQueryable
"理解IQueryable的最简单方式就是,把它看作一个查询,在执行的时候,将会生成结果序列。" - Jon Skeet
s055523
2018/09/14
1.7K0
.NET面试题系列[14] - LINQ to SQL与IQueryable
ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
本篇代码以下代码进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-02
KenTalk
2018/12/29
2.2K0
ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
linq to sql中慎用Where<T>(Func<TSource, bool> predicate),小心被Linq给"骗"了!
近日在一个大型Web项目中,采用Linq to Sql替换原来的sqlcommand/sqldatareader方式来获取数据,上线后刚开始一切正常,但是随着访问量的增加,网站明显慢了很多,监测服务器CPU占用率/内存使用情况等性能指标却发现均在正常范围内,无意中在SqlServer Profier中跟踪数据库执行的sql语句时,发现有大量语句直接将整个表的数据全部提取出来了,而非仅返回分页中的当前页数据! 而这些SQL都是Linq自动翻译并最终提交到数据库的,查看了相关的代码,明明写着Skip(n
菩提树下的杨过
2018/01/24
1K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(89)-EF执行SQL语句与存储过程
这一节,我们来看看EF如何执行SQL语句与读取存储过程的数据,可能有一部分人,还不知道EF如何执行存储过程与原生SQL语句! 我们什么时候要直接使用原生的SQL语句? 返回值过于复杂 过于复杂的联合查询,可能连了好几张表 报表自定义SQL语句(自定义报表居多) 使用EF,但是写了一条性能很差的LINQ 批量操作 所以实际开发中,我往往两合一处理 EF上下文 DbContext包含了DataBase属性,里面有很多方法,但是实际我们只需要用到个方法      ExecuteSqlCommand 和 Sql
用户1149182
2018/03/27
1.2K0
ASP.NET MVC5+EF6+EasyUI 后台管理系统(89)-EF执行SQL语句与存储过程
编写高质量代码改善C#程序的157个建议[IEnumerable<T>和IQueryable<T>、LINQ避免迭代、LINQ替代迭代]
本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html 。本文主要学习记录以下内容:
aehyok
2018/08/31
9650
编写高质量代码改善C#程序的157个建议[IEnumerable<T>和IQueryable<T>、LINQ避免迭代、LINQ替代迭代]
Entity Framework 基础知识走马观花
  (1)通过选择以XML方式打开edmx文件,我们可以可以清楚地看到,edmx模型文件本质就是一个XML文件;
Edison Zhou
2018/08/20
1.4K0
Entity Framework 基础知识走马观花
Entity Framework快速入门--IQueryable与IEnumberable的区别
公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。也就是说:实现了此接口的object,就可以直接使用foreach遍历此object;
老马
2022/05/10
4540
Entity Framework快速入门--IQueryable与IEnumberable的区别
推荐阅读
相关推荐
最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验