问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2023-09-17 14:35

我来回答

1个回答

热心网友 时间:2024-06-10 18:10



ASP.NETWEBFORMS给开发者提供了极好的事件驱动开发模式。然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的ASP应用程序中,你能够通过POST方法很容易的把一个值或多个值从一个页面传送到另一个页面,用同样的方法在ASP.NET中实现有点麻烦。在这里,我们可以通过其他方式来解决这种情形。ASP.NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过Server.Transfer方法来实现。下面分别一一介绍:

一、使用Querystring
Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:
1、创建一个webform
2、在新建的webform中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
stringurl;
url="webform2.aspx?name="+
TextBox1.Text+"&email="+
TextBox2.Text;
Response.Redirect(url);
}
4、新建一个目标页面命名为webform2
5、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["email"];
}
运行,即可看到传递后的结果了。

二、使用Session变量

使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。举个例子看看:
1、创建一个webform
2、在新建的webform中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
Session["name"]=TextBox1.Text;
Session["email"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
4、新建一个目标页面命名为webform2
5、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
Label1.Text=Session["name"].ToString();
Label2.Text=Session["email"].ToString();
Session.Remove("name");
Session.Remove("email");
}
运行,即可看到传递后的结果了。

三、使用Server.Transfer
虽然这种方法有点复杂,但也不失为一种在页面传值的方式。
举个例子看看:
1、创建一个webform
2、在新建的webform中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下:
privatevoidButton1_Click
(objectsender,System.EventArgse)
{
Server.Transfer("webform2.aspx");
}
4、创建过程来返回TextBox1,TextBox2控件的值代码如下:
publicstringName
{
get
{
returnTextBox1.Text;
}
}

publicstringEMail
{
get
{
returnTextBox2.Text;
}
}
5、新建一个目标页面命名为webform2
6、在webform2中放置两个Label1,Label2
在webform2的Page_Load中添加如下代码:
privatevoidPage_Load
(objectsender,System.EventArgse)
{
//创建原始窗体的实例
WebForm1wf1;
//获得实例化的句柄
wf1=(WebForm1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.EMail;

}
运行,即可看到传递后的结果了。



声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人字梯有什么安全隐患吗 怎样激发青春期孩子的内驱力 如何激发青春期孩子的内驱力 ...小题1:移船相近邀相见,添酒回灯重开宴。 , &n... L1和L2串联 电压表并联在L1两端 当L1断路后 电压表测的为什么就成了电源... L1和L2串联,用电压表测L1两端的电压,L2不亮时,电流表为什么测的是电源电... 电路上传连两个灯泡L1与L2电压表测L1电压,当L1短路与断路时电压表情况... 对方拖着不办离婚手续该怎么办 计算机一级电子表格怎么拿分 如何配置思源黑体为latex中文字体? 思源黑体字体怎么安装 强国有我的观后感怎么写 强国有我观后感怎么写 鸭子是苏慧伦的杰作吗 对不起 您访问的视频暂时无法访问 英文怎么说? 在哪儿可以下载会声会影最炫最全的模板 护照是出国用的吗 辣椒酱的家庭制作方法和配料 办理IDC需要多长时间呢? 日语的やります是什么意思? いやらしい・・ 是什么意思啊? やらしい的意思和用例 我和婆婆生气二十多天了,也不说话,她总是是非颠倒,我最讨厌昧着良心说话... 暂时结束了 的英文是什么? 因为那几天天天吵架对婆婆大吼大叫现在婆婆不搭理我了 暂时消失 用英语怎么说? 我前几年在家和婆婆吵架,我生气了,骂了一句不该骂的话,我老公家公都要... 和婆婆吵架情绪激动骂了她一下,和老公说了,他说没事的回来我跟她说, 双击或右键单击打开文件夹或者返回上级目录时,都同时出现打印页面 公安警察院校招生条件 拿照片去派出所可以找到人吗 学生会有几个部门 2021年梅州中考各科分数 学生会有几个部门? 学生会有多少个部门? 红河学院住宿费是一年交几次 红河学院宿舍问题 红河学院学费查询,学费多少 怎么看自己在淘宝买的东西多久到货的啊 如何查看淘宝订单确认收货的时间? 如何煮红豆不开花 你在什么时候会害怕自己的年龄? 为什么我在35岁的时候就焦虑了呢? 你是什么时候开始对年龄感到焦虑的? 你有没有“年龄焦虑”? 中了3点代表你年龄焦虑了 gtr底盘离地面有多高? 除了用电动工具弄断铁方管,还有什么办法 ...我剪头的时候理发师不停的在找话题聊,但是我没几句就冷场,觉得好尴... 我是大学生,男友是美发师,他工作忙,我们平时只是通过短信交流。我们这种... ...送子观音 等 那手托 玉净瓶的是什么观音那 急!急! 谁告诉我下 谢谢...