ASP.NET — 页面传值各种方法

1、Request.QueryString:获取传入的参数,请求地址 "?" 后面的参数集合(get方式)

     Request.Form[]:获取表单传入的值(同样是两个重载)(Post方式)

     Request[]:以上两种方式都可以使用Request[]方式接受(没有重载,只能传入string)

    两种重载:①Request.QueryString[string key]

                  ②Request.QueryString[int index]

//Request.QueryString
string
str = Request.QueryString["txt"]; string str = Request.QueryString[0];
//Request.Form
string str = Request.Form["txt"];  
string str = Request.Form[0];
//Request
string str=Request["txt"];

2、Session

     Session

3、Application

Application["name"] = "小红";
//加锁解锁
Application.Lock();
string strApplication = Application["name"].ToString();
Application.UnLock();
Application

   总结:

   ① Application对象的作用范围是整个全局,也就是说对所有用户都有效。它在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所以可以在不同页面中

对它进行存取。它和Session变量的区别在于,前者是所有的用户共用的全局变量,后者是各个用户独有的全局变量。可能有人会问,既然所有用户都可以使用application

变量,那他可以用在什么场合呢?这里举个例子:网站访问数。多个请求访问时都可以对它进行操作。

   ② 优点:使用简单,消耗较少的服务器资源;不仅能传递简单数据,还能传递对象;数据量大小是不限制的。

   ③ 缺点:作为全局变量容易被误操作。所以单个用户使用的变量一般不能用application。

   ④ 在源页面的代码中创建你需要传递的名称和值构造Application变量:Application["name"]="Value(Or Object)";在目的页面的代码使用Application变量取出传递的值。              Result = Application["name"]。

   ⑤ 常用lock和unlock方法用来锁定和解锁,为了防止并发修改。

     摘自http://www.cnblogs.com/wangjiming/p/6275854.html

4、Cache

 Cache["name"] = "xiaohong";
 Cache["name1"] = new Person("小白");
 Cache["name2"] = new Person("小红");
 //Cache.Remove("name");
Cache

     该方法的优点是传递数据的大小和数量无限制,速度快。缺点是缓存机制的操作相对比较复杂。

5、Cookie

 Response.Cookies["cookie1"].Value = Server.UrlEncode("哈哈");  //中文需要编码,在接收的时候需要解码
Server.UrlDecode(Request.Cookies["cookie1"].Value); //接收解码

   ① Cookie用于在用户浏览器上存储小块的信息,保存用户的相关信息,比如用户访问某网站时用户的ID,用户的偏好等,用户下次访问就可以通过检索

获得以前的信息。所以Cookie也可以在页面间传递值。

  ② Cookie通过HTTP头在浏览器和服务器之间来回传递的。Cookie只能包含字符串的值,如果想在Cookie存储整数值,那么需要先转换为字符串的形式。

  ③ 与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使

用要配合ASP.NET内置对象Request来使用。

  ④ 使用简单,是保持用户状态的一种非常常用的方法。比如在购物网站中用户跨多个页面表单时可以用它来保持用户状态。

  ⑤ 常常被人认为用来收集用户隐私而遭到批评。

  ⑥ 安全性不高,容易伪造。

6、Context.Items["id"]

 Context.Items["id"] = "sssssssss";
 Response.Write(Context.Items["id"]);
Context.Items

    注:Items只能在本页面对数据进行交互,Context.Items可以跨页面

7、ViewSatate

 ViewState["id"] = "ssss";

   viewstate只能在同一页面上进行数据交互,不能跨页面传值

   总结:

  ① ViewState 是ASP.NET 用来在同一页面的多个请求之间保存和还原服务器控件视图状态的一种机制。与传统的“同一页面”不同,ASP.NET 中“同一页面”的

每一个请求都会导致服务器重新生成该页面,但是新生成的页面并不包含原来页面的数据。(页面无状态性)

  ② ViewState 的任务就是保存原来页面中服务器控件视图状态的数据供新页面使用。从这个意义上讲,ViewState 也可以看作是一种在页面间传递数据的工具。

  ③ ViewState 的工作原理是:作为一个隐藏的窗体字段在客户端和服务器之间传递,可见,滥用ViewState 会加重页面回传的负担,从而降低应用程序的性能。

       此外,ViewState 也能被控件、页面和应用程序禁用。

8、Static

     在本页面定义一个静态的字段,可以保存值,很好用

原文地址:https://www.cnblogs.com/whbk/p/6425574.html