Aspnet页面中常用的几种传值方式
net中常用的几种页面间传递参数的方法及其优缺点

net中常用的几种页面间传递参数的方法及其优缺点.net中常用的几种页面间传递参数的方法,及其优缺点2011-05-03 23:43在Web应用程序中,页面之间交换数据(传值)是一种基本应用,它的实现效率对程序性能有直接的响。
传统的解决方案是通过Get或Post方法来实现的。
但在中,这2种方法的使用发生了变化。
因为使用了基于事件驱动的编程模型,页面采用了PostBack技术(发回给自己),一些传统的方法必须做出一定的调整才能适应它。
同时,以其优秀的架构提供了更多可用于页面间传值的方法。
这些方法各具特色,比较充分地适应了各种情况下页面间传值的需求。
1页面重定向页面间的传值方法总是与一定的页面重定向方法相联系,而且有些传值方法只能用某种重定向方法才能实现。
中有多种页面重定向的方法,这里仅介绍下文中用到(也是最常用的)的2种。
(1)Redirect方法将客户端重定向到新的页面,只是简单地终止当前页面,并转入新的页面开始执行,对转入的页面无任何限制。
(2)Transfer方法终止当前页的执行,并为当前请求开始执行新的页面。
把执行流程从当前页面转到同一服务器中的另一页面,但是新的页面仍然使用当前页面创建的应答流。
这两种方法的主要区别是:(1)Redirect方法可以实现任意网页间的重定向,而Transfer方法只能实现同一服务器中ASPX页面间的重定向。
(2)Redirect方法不会保留当前页面的表单(Form)数据和查询字符串(QueryString),而Transfer方法则可以保留这些数据。
2传值方法为了简化问题的讨论,本文作如下约定:示例基于C#语言;源页和目标页已经导入了必要的命名空间;源页面设为Src.aspx,值的传送点设在控件Button1的Click事件中,待传送的数据保存在控件TextBox1中;目标页面设为Dst.aspx,值的接收点设在该页面的Page_Load事件中,接收的数据显示在控件Label1中;不深入讨论与之相关的编程问题,所有示例仅给出基本实现方法,所有代码在Visual Studio2005中调试通过。
ASP传递参数方法汇总

asp传参数的方法dadaV2016.02.15asp传参数的方法常用的有三种:1、用户端用http方式传参数到服务器(FORM表单方式)用表单的action属性,将参数传递到接收的文件中。
<form action="test.asp" method="get">//test.asp 为接收参数的页面,method为传送方式,分post方式和get方式。
2、用链接传递参数 <a href='test.asp?name=bansi&sex=man'> 会员</a>href后面的属性首先跟的是一个提交到后台处理的asp文件,"?"后面跟的是参数,参数值是在"="后面。
当多个参数时,使用"&"将参数隔开。
这里就有两个参数name与sex,参数值分别为bansi与man。
比如 <a href="test.asp?action=check<%=rs("字段名")%>">使用mid(request("action"),1,5)获取 check使用mid(request(action),5) 获取<%=rs("字段名")%>3、使用<input>标签方式设置为隐藏方式传递一个参数<input type="hidden" name="id" value="<%=request.querystring("id")%>">下一页面使用 request.form("id")获取id参数asp的参数传递和获取设计交互式网页离不开接收用户的输入信息,也即参数传递和获取。
asp.net页面间传值方式

页⾯间传值⽅式 使⽤开发项⽬,必然会在页⾯间进⾏传值,本⽂介绍⼏种常见的页⾯传值⽅式,仅作笔记,以便后续查找使⽤。
前提:新建两个页⾯:ValuePage.aspx,ObtainValue.aspx,本⽂介绍的⼏种传值⽅式都是在valuePage页⾯赋值,传递到ObtainValue.aspx页⾯中。
在ValuePage.aspx前台新建两个textbox控件,ID分别为:tbUserName,tbPwd。
ObtainValue.aspx页⾯上同样有两个textbox空间,ID:tbUserName,tbPwd,⽬的是为了接收从ValuePage.aspx传递过来的值。
1、使⽤QueryString⽅式: ValuePage.aspx.cs代码: Response.Redirect("ObtainValue.aspx?userName=" + this.tbUserName.Text.Trim () + "&pwd=" + this.tbPwd.Text.Trim()); ObtainValue.aspx.cs代码:private void QueryString(){this.tbUserName.Text = Request.QueryString["userName"];this.tbPwd.Text = Request.QueryString["pwd"];} 2、Session传值: ValuePage.aspx.cs代码:Session["userName"] = this.tbUserName.Text.Trim();Session["pwd"] = this.tbPwd.Text.Trim();Response.Redirect("ObtainValue.aspx"); ObtainValue.aspx.cs代码:this.tbUserName.Text = Session["userName"].ToString();this.tbPwd.Text = Session["pwd"].ToString(); 3、使⽤Application对象变量传值: ValuePage.aspx.cs代码:Application.Lock();Application["userName"] = this.tbUserName.Text.Trim();Application["pwd"] = this.tbPwd.Text.Trim();Application.UnLock();Server.Transfer("ObtainValue.aspx"); ObtainValue.aspx.cs代码:Application.Lock();this.tbUserName.Text = Application["userName"].ToString();this.tbPwd.Text = Application["pwd"].ToString();Application.UnLock(); 解析:Application.Lock和Application.UnLock⼀般配对出现,⽤于锁住Lock与UnLock之间的所有代码(注意不光锁住对于Application 的赋值)。
asp.net页面传值的几种方式

页⾯传值的⼏种⽅式⼀、Request.QueryString 1.QueryString是⼀种⾮常简单的传值⽅式,他可以将传送的值显⽰在浏览器的地址栏中。
如果是传递⼀个或多个安全性要求不⾼或是结构简单的数值时,可以使⽤这个⽅法。
但是对于传递数组或对象的话,就不能⽤这个⽅法了。
2.使⽤⽅法:在源页⾯的代码中⽤需要传递的名称和值构造URL地址(IP地址⾥⾯“?”后⾯的参数的内容,)在源页⾯的代码⽤Response.Redirect(URL);重定向到上⾯的URL地址中。
在⽬的页⾯的代码使⽤Request.QueryString["name"];取出URL地址中传递的值。
⼆.Request.Form1、Request.Form 获取窗体变量集合。
有两重载,即Request.Form[string name]和Request.Form[int index]。
2、获取表单指定名字的参数值(form表单中的method中⼀般⽤post。
)。
三、Session1.作⽤于⽤户个⼈,所以,过量的存储会导致服务器内存资源的耗尽。
2.当客户端向服务器发送⼀个请求时,如登陆⽤户ID,服务器接收到该请求,服务器端Session产⽣⼀个与该登陆⽤户相关的SessionID,并将SessioID返回给客户端(Goggle,Firefox,IE等),在新会话开始时,服务器将SessionID当做 cookie存储在⽤户的浏览器中。
3.优缺点优点:1.使⽤简单,不仅能传递简单数据类型,还能传递对象。
2.数据量⼤⼩是不限制的。
缺点:1.在Session变量存储⼤量的数据会消耗较多的服务器资源。
2.容易丢失。
4.使⽤⽅法:1.在源页⾯的代码中创建你需要传递的名称和值构造Session变量:Session["Name"]="Value(或 object)"; 2.在⽬的页⾯的代码使⽤Session变量取出传递的值。
ASP.NET页面之间的数据传递与保持7页word

ASP页面之间的数据传递与保持页面之间数据的传递与保持是实现网站与用户交互的重要手段之一,也是Web应程序的基本功能,它的实现效率对程序性能有直接的影响。
ASP 提供了多种方法来实现数据的传递与保持,这些方法各有所长。
以下对常用的几种方法做阐述。
一、数据在页面间的传递在用户访问网站的过程中,页面之间的跳转总是非常频繁。
用户通常点击页面上某个超链接而进入网站其它页面,也有可能点击某个按钮提交信息从而打开了目标页面,甚至是网页程序在某个条件达成时自动的页面重定向。
无论哪种情况使得用户浏览时换了页面,都不能丢了用户的状态,也就是在用户本次访问网站过程中,其状态应该是连续的,有些数据必须在页面之间传递下去,以供目标页面获取。
目标页面可以通过Request对象来获取源页面传来的数据。
1.Request.QueryStringQueryString是最简单最常用的传值方法,它能够获取HTTP查询字符串附在URL后面的参数值:URL?参数名1=参数值&参数名2=参数值......而以URL方式进行页面转换有以下几种:超链接:<a>标记的href属性或控件HyperLink的NavigateURL 设置URL后面可以连接参数;控件Button的postbackURL属性可以设置目标页面URL,后面可以连接参数;表单数据以get方法发送给指定的目标URL,会将控件值作为参数连接在URL后面,参数名就是控件名或控件ID,参数值就是控件的值;Response对象的Redirect方法可以设置参数URL,使客户端浏览器立即重定向到指定的URL;Session对象的Transfer方法可以设置参数URL将客户端重定向到新的页面,它终止当前页的执行,保留当前页面的表单(Form)数据和查询字符串(QueryString),并为当前请求开始执行URL指定的目标页面,而源页面已加载的数据依然保存。
详解ASP.NET页面之间传值的几种方式

详解页⾯之间传值的⼏种⽅式开篇概述对于任何⼀个初学者来说,页⾯之间传值可谓是必经之路,却⼜是他们的难点。
其实,对⼤部分⾼⼿来说,未必不是难点。
回想2016年⾯试的将近300⼈中,有实习⽣,有应届毕业⽣,有1-3年经验的,有3-5年经验的,有5-10年经验的,对于所有的⾯试者,我⼏乎问了同⼀道题:"请说说你所知道的页⾯之间传值的⼏种形式和⽅法,并阐述他们的原理和过程",关于这道题,从⼤家的回答来看,结果并不是很理想,从种类上来说,⼤部分⼈回答5种左右,极少部分能回答8种,没有超过8种的,但从深度上来说,很少有⼈能透彻的分析每种⽅法的原理和过程,(当然,要想透彻的分析这些原理和过程,需要研究底层的东西,如page ⽣命周期和page原理,反射,IIS如何解析请求等,CLR,GC,反编译等)。
⼤致概括⼀下, 页⾯之间传递值得⽅式⼤致可以分为如下⼏种:Request.QueryString["name"],Request.Form("name"),Session,Cookie,Cache,Application,Server.Transfer,Database,HttpContext 的Item属性,Files,DataBase等等。
详解每种⽅法⼀、Request.QueryString核⼼代码:protected void getQueryString_Click(object sender, EventArgs e){string QueStr = Request.QueryString["name"];Response.Write(QueStr);}总结:1、Request.QueryString:获取http查询字符串变量集合。
有两重载,即Request.QueryString[string name]和Request.QueryString[int index];2、Request.QueryString主要是获取url中的“?”之后的参数,如url:a.aspx?name="queryString",则Request.QueryString["name"]的值为“queryString”。
ASP.NETMVC程序传值方式:ViewData,ViewBag,TempData和Se。。。

最后创建一个强类型的TempData主要是用在需要在多个Acions或者页面重定向时共享传递数据时使用。
五、Session
Session也是 MVC传递值得一种方式,和TempData不同的,用户整个回话期中Session都不会过期。 Session在同一用户会话过程中的所用请求中有效,比如,页面刷新。 Session中的值也需要进行类型转换和非空检查。
11
12 return RedictToAction("DisplayCustomer2");
13 }
public ActionView DisplayCustomer2 {
Customer customer = TempData["OneCustomer"] as Customer;
return View(customer ); }
下面,我们来透过一个例子来演示一下如何在两个Action方法中传递数据。
首先创建一个Model类,如下
1 public class Customer 2{ 3 public int Id { get; set; } 4 public string Code { get; set; } 5 public double Amount { get; set; } 6}
然后在Controller中加入如下代码:
1 public ActionView DisplayCustomer1
2{
3 Customer customer = new Customer
4{
5
Id = 1001,
6
Code = "100101",
7
Amount = 100
Asp.net.WebForm页面跳转的传值的几种方式

.WebForm页⾯跳转的传值的⼏种⽅式最近在做.WebForm页⾯的项⽬,记录下webForm页⾯跳转到其他页⾯的⽅式(带参数)其中Sesion传值出现获取不到(未解决),Cookie传值出现中⽂乱码(已解决)1、不带参数的跳转///<summary>///登录事件///</summary>///<param name="sender"></param>///<param name="e"></param>protected void LoginClick(object sender, EventArgs e){//跳转到指定页⾯Response.Redirect("../home/index.aspx");}2、带参数的跳转2.1、使⽤queryString传值,跳转到指定页⾯2.1.1)a.aspx的C#代码(存放)///<summary>///登录事件///</summary>///<param name="sender"></param>///<param name="e"></param>protected void LoginClick(object sender, EventArgs e){//获取页⾯的⽤户、密码string userCode = this.txtUser.Text.Trim();string userPwd = this.txtPwd.Text.Trim();//⽅式⼀:使⽤queryString传值,跳转到指定页⾯Response.Redirect("../home/index.aspx"+"?userCode="+ userCode+"&&userPwd="+ userPwd;}2.1.2)b.aspx的C#代码(读取)protected void Page_Load(object sender, EventArgs e){//通过QueryString ,获取登录名this.loginUserName.Text = Request.QueryString["userCode"];}2.2、使⽤Application传值,跳转到指定页⾯2.2.1)a.aspx的C#代码(存放)///<summary>///登录事件///</summary>///<param name="sender"></param>///<param name="e"></param>protected void LoginClick(object sender, EventArgs e){//获取页⾯的⽤户、密码string userCode = this.txtUser.Text.Trim();string userPwd = this.txtPwd.Text.Trim();//⽅式⼆:使⽤Application传值,跳转到指定页⾯Application["userCode"] = userCode;Application["userPwd"] = userPwd;Response.Redirect("../home/index.aspx");}2.2.2)b.aspx的C#代码(读取)protected void Page_Load(object sender, EventArgs e){//通过 Application ,获取登录名this.loginUserName.Text = Application["userCode"].ToString();}2.3、使⽤Seesion传值,跳转到指定页⾯(报错,跳转到下⼀页⾯,查找不到Session的值)2.3.1)a.aspx的C#代码(存放)///<summary>///登录事件///</summary>///<param name="sender"></param>///<param name="e"></param>protected void LoginClick(object sender, EventArgs e){//获取页⾯的⽤户、密码string userCode = this.txtUser.Text.Trim();string userPwd = this.txtPwd.Text.Trim();//⽅式三:使⽤Seesion传值,跳转到指定页⾯(报错,跳转到下⼀页⾯,查找不到Session的值)Session["userCode"] = userCode;Session["userPwd"] = userPwd;Response.Redirect("../home/index.aspx");}2.3.2)b.aspx的C#代码(读取)protected void Page_Load(object sender, EventArgs e){//通过 Session ,获取登录名this.loginUserName.Text = Session["userCode"].ToString();}2.4、使⽤cookie传值,跳转到指定页⾯(cookie存放中⽂会乱码,存放cookie时,需编码) 2.4.1)a.aspx的C#代码(存放)///<summary>///登录事件///</summary>///<param name="sender"></param>///<param name="e"></param>protected void LoginClick(object sender, EventArgs e){//获取页⾯的⽤户、密码string userCode = this.txtUser.Text.Trim();string userPwd = this.txtPwd.Text.Trim();//⽅式四:使⽤cookie传值,跳转到指定页⾯(cookie存放中⽂会乱码,存放cookie时,需编码) HttpCookie cookie1 = new HttpCookie("userCode", HttpUtility.UrlEncode(userCode));HttpCookie cookie2 = new HttpCookie("userPwd",HttpUtility.UrlEncode(userPwd));Response.Cookies.Add(cookie1);Response.Cookies.Add(cookie2);Response.Redirect("../home/index.aspx");}2.4.2)b.aspx的C#代码(读取)protected void Page_Load(object sender, EventArgs e){//通过cookie,获取登录名(cookie存放中⽂会乱码,读取cookie时,需解码)this.loginUserName.Text = HttpUtility.UrlDecode(Request.Cookies["userCode"].Value);}参考⽹址:https:///zzzzzzzert/article/details/8486143https:///qq450867541/p/7600345.html。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。
如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。
但是对于传递数组或对象的话,就不能用这个方法了。
下面是一个例子:
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
2. 使用Application 对象变量
Application对象的作用范围是整个全局,也就是说对所有用户都有效。
其常用的方法用Lock和UnLock。
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
Application["name"] = Label1.Text;
Server.Transfer("b.aspx");
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
string name;
Application.Lock();
name = Application["name"].ToString();
Application.UnLock();
}
3. 使用Session变量
想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
Session["name"] = Label.Text;
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Session["name"].ToString();
}
4. 使用Cookie对象变量
这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。
而且Cookie 的使用要配合内置对象Request来使用。
a.aspx的C#代码
private void Button1_Click(object sender, System.EventArgs e)
{
HttpCookie cookie_name = new HttpCookie("name");
cookie_name.Value = Label1.Text;
Reponse.AppendCookie(cookie_name);
Server.Transfer("b.aspx");
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}
5. 使用Server.Transfer方法
这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。
a.aspx的C#代码
public string Name
{
get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
Server.Transfer("b.aspx");
}
b.aspx中C#代码
private void Page_Load(object sender, EventArgs e) {
a newWeb; //实例a窗体
newWeb = (source)Context.Handler;
string name;
name = ;
}。