ASP.Net关于页面之间传值的几种方式和实现方法

Session、Cookie、Server.transfer、Querystring、Application

Session在用户向服务器发送首次请求的时候被创建,在用户关闭浏览器或者发生异常时被终止(也可以自己设定Session的过期时间)。

//Session创建
Session["Name"] = txtName.Text;
//在其他页面中读取Session值
if(Session["Name"] != null)
    Lable.Text = Session[""Name].toString();

Cookie做服务端创建,保存在客户端。

HttpCookie cName = new HttpCookie("Name");
cName.Value = txtName.Text;
Response.Cookies.Add(cName);
Response.Redirect("WebForm5.aspx");

创建一个名叫cName的Cookie实力对象,由于一个Cookie可以保存多个值,我们需要告诉编译器这个cookie将保存“Name”值,并把txtName.Text的值赋给它,并把它加到"输出流” 中,并使用Response.Redirect输出到另外一个网页。

if (Request.Cookies["Name"] != null )
    Label.Text = Request.Cookies["Name"].Value;

Session 和 Cookie 用法有些类似,一个是Request.Cookie 一个是 Request.QueryString

注:一些浏览器不支持Cookie。

Server.Trasfer(HttpContext)

我们还可以使用 Server.Transfer方式(或称HttpContext方式)在页面之间传递变量,此时,要传递的变量可以通过属性或方法来获得,使用属性将会比较容易一些。

public string GetName
{
    get { return txtName.Text; }
}

我们需要使用Server.Transfer把这个值发送到另外一个页面中去,请注意Server.Transfer只是发送控件到一个新的页面去,而并不会使浏览器重定向到另一个页面。所以,我们我们在地址栏中仍然看到的是原来页面的URL。如下代码所示:

Server.Transfer("WebForm5.aspx");

// You can declare this Globally or in any event you like

WebForm4 w;

// Gets the Page.Context which is Associated with this page 

w = (WebForm4)Context.Handler;
// Assign the Label control with the property "GetName" which returns string

Label.Text = w.GetName;

QueryString URL Response.Redirct

private void Button1_Click(object sender, System.EventArgs e)
{
    // Value sent using HttpResponse
    Response.Redirect("WebForm5.aspx?Name="+txtName.Text);
}

接收值要在Page_Load中

if (Request.QueryString["Name"]!= null)
    Label.Text = Request.QueryString["Name"];

  

Application

相当于一个全局的静态变量,可以在所有的页面中获取他。

// 为Application变量赋值

Application["Name"] = txtName.Text;
Response.Redirect("WebForm5.aspx"); 

// 从Application变量中取出值

if( Application["Name"] != null )
    Label.Text = Application["Name"].ToString();

  

时间: 2024-11-02 23:37:12

ASP.Net关于页面之间传值的几种方式和实现方法的相关文章

【转】【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

ASP.NET MVC系列文章 原文地址:https://www.cnblogs.com/wangjiming/p/6275854.html [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP.NET框架 [05]浅谈ASP.NET MVC运行过程 [06]浅谈ASP.NET MVC 控制器 [07]浅谈ASP.NET MVC 路由 [08]浅谈AS

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

原文:http://www.cnblogs.com/wangjiming/archive/2017/01/18/6275854.html#!comments 详解每种方法 一.Request.QueryString 核心代码: protected void getQueryString_Click(object sender, EventArgs e) { string QueStr = Request.QueryString["name"]; Response.Write(QueSt

笔记(三) ASP.NET 页面之间传值的几种方式

ASP.NET 页面之间传递值得方式大致可以分为如下几种:Request.QueryString["name"],Request.Form("name"),Session,Cookie,Cache,Application,Server.Transfer,Database, HttpContext的Item属性,Files,DataBase等等. 一.Request.QueryString 核心代码: protected void getQueryString_Cli

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

1.  QueryString 当页面上的form以get方式向页面发送请求数据时,web server将请求数据放入一名为QEURY_STRING的环境变量中,QeueryString方法从这个变量中取出相应的值. 先建立两个WebForm,分别为WebForm1和WebForm2,WebForm1添加两个文本框用于输入客户端的输入,一个按钮用于导航到要传值的页面WebForm2,在目的页添加一个文本框用于显示传递过来的值. WebForm1按钮单击代码: string url = "WebF

IOS开发笔记(2)页面之间传递数据几种方式比较

今天分享一下页面之间传值的几种方式 1.@property属性 这个不用多说了吧,当页面A 跳转到页面B,在class B中声明属性 @property (nonatomic, copy) NSString *name; 初始化B FirstViewController *firstVC = [FirstViewController new]; firstVC.name = @"name"; [self presentViewController:firstVC animated:YE

[转] PHP在不同页面之间传值的三种常见方式

转自: http://my.oschina.net/jiec/blog/196153 一. POST传值 post传值是用于html的<form>表单跳转的方法,很方便使用.例如: <html> <form action='' method=''> <input type='text' name='name1'> <input type='hidden' name='name2' value='value'> <input type='su

iOS页面间传值的五种方式总结(Delegate/NSNotification/Block/NSUserDefault/单例)

iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例) iOS页面间传值的方式(NSUserDefault/Delegate/NSNotification/Block/单例) 实现了以下iOS页面间传值:1.委托delegate方式:2.通知notification方式:3.block方式:4.UserDefault或者文件方式:5.单例模式方式:6.通过设置属性,实现页面间传值 在iOS开发中,我们经常会遇到页面间跳转传值的问题,

.net 页面之间传值的几种方法!(转)

QueryString传值:1. 这是最简单的传值方式,但缺点是传的值会显示在浏览器的地址栏中且不能传递对象,只适用于传递简单的且安全性要求不高的整数值,例如: 2. 新建一个WEB项目,添加一个页面命名为Test1,在页面中添加一个Button命名为btnLogin,再添加两个TextBox分别命名为tbxUserName和tbxPassWord,添加Buttond的Click()事件: private void btnLogin_Click (object sender, System.Ev

java前后台之间传值的几种方式

自己写的代码太少,有时候前后台传值还写的不是很熟练,现在总结一下,加深下印象. 1.jquery的Ajax传值 ---->前台到后台 期望功能:把前台用户输入的信息保存在数据库里. 前台jsp代码: function saveUserInfo(){ var params = {};//定义一个数组 var userNO = jq("#userNO").val();//把前台页面上的值都赋予一个变量  var userName = jq("#userName")