webform内置对象

1、Response和Request
地址栏数据拼接 QueryString
优点:简单好用;速度快;不消耗服务器内存。
缺点:只能传字符串;保密性差(调转页面后在地址栏显示);长度有限。
响应请求对象 Response
获取请求对象 Request
(1)跳转页面
Response.Redirect(path);//重定向,可以跳转任何网页
Rerver.Trandfer(path);//跳转后地址栏的网址不改变,只能跳转该网站根目录下的网站
Respone.Write("<script>JS语句</script>");
(2)页面传值
步骤:
1)拼接数据
String path="相对路径?aaa=" +TextBox1.Text+"&bbb="+TextBox2.Text;
注意:数据拼接是英文状态的符号,并且不能有空格。
2)跳转页面
3)接收数据
//括号内的字符串是数据拼接路径问号后面的等号之前的字符串
Label1.Text=Request["aaa"];
Label1.Text+=Request["bbb"];

2、Session相对全局对象
Session是非常安全的,因为它存在于服务器的内存中,取数据也是最快的;
但是,Session不要滥用,因为会造成服务器内存溢出,导致服务器崩溃
Session里面不要放大东西,如果不用那么就会造成资源浪费
Session生命周期:20分钟,刷新界面会重新计时
接受界面如果Session为空会报错,要判断是否为空

//赋值
Session["NickName"] = dl.NickName;
                    Response.Redirect("Mainweb.aspx");
//取值
if (Session["NickName"] != null)
        {
        //Session["NickName"]取值并给Literal1赋值
        Literal1.Text = " 欢迎您:" + Session["NickName"].ToString() + "<br/>";
        
        }

3、Cookies
Cookies里面可以存内容,但是存的只能是字符串
会话Cookies的生命周期是:20分钟
持久Cookies,保存时间由咱们网站代码来设置
Cookies是存在用户电脑的硬盘上

//赋值:
Response.Cookies["NickName"].Value = HttpUtility.UrlEncode(dl.NickName);  
                        Response.Cookies["NickName"].Expires = DateTime.Now.AddDays(7);
                        Response.Redirect("Mainweb.aspx");
//取值
 if (Request.Cookies["NickName"] != null )
        {
            //HttpUtility.UrlDecode(Request.Cookies["userName"].Value, enc);
           Literal1.Text = " 欢迎您:" +HttpUtility.UrlDecode( Request.Cookies["NickName"].Value) + "<br/>";
            
        }

如果传递的值是汉字,需要编码和解码

//第一个参数是传递的值
HttpUtility.UrlEncode("",System.Text.Encoding.GetEncoding("utf-8"));//编码 HttpUtility.UrlDecode("",System.Text.Encoding.GetEncoding("utf-8"))//解码

4、Application
它是全局对象,全局只有这一个对象
只要被创建出来,所有人取的值都是一样的
生命周期:永久
保存位置:服务端
赋值:Application["banben"]="1.3"
取值:Label1.Text=Application["banben"].ToString();

5、ViewState:(了解)
病历,记录上一个页面的信息
ViewState的作用域是页面,也就是说ViewState是存储在浏览器的页
面之中的(这里相比Session等,耗费的服务器资源较少),当你关闭
某个aspx文件后,那么属于这个aspx的ViewState也就不存在了。
我们在aspx.cs代码中为某些服务器控件设置的值(例如:为Repeater设
置DataSource中存入的数据集、为Label所设置的Text内容等,但不包括:
TextBox、CheckBox、CheckboxList、RadioButtonList)都存入了ViewState中
。这样做的话,我们下次再向服务器提交请求时,现有表单中所有的服务器控
件状态都会记录在ViewState中提交到服务器,在服务器端可以方便地对这些服
务器控件进行有状态的操作并返回。

原文地址:https://www.cnblogs.com/zhang-dandan-1/p/5979445.html