ASP.NET常用对象和状态管理-总结

    技术2024-04-08  84

    ASP.NET内置了大量用于获得服务器或客户端信息,进行状态管理,实现页面跳转,实现跨页传递数据的对象。 一.ASP.NET的常用对象 1.Page对象 常用的属性,方法,事件 Controls:获取ControlCollection对象,该对象表示用户接口层次结构中指定服务器控件的子控件集 IsPostBack:该属性返回一个逻辑值,表示页面是为响应客户端回发而再次加载 IsValid:该属性返回一个逻辑值,表示页面是否通过验证 EnableViewState:获取或设置一个值,用来指示当前页请求结束时是否保持其视图状态 Validators属性:获取请求的页上包含的全部验证空间的集合

    protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack)//表示第一次加载,若没有,当页面由于用户的其它操作引起回发的时候,DropDownList中就会错误地出现重复选项,每回发一次,多出现一组选项 { DropDownList1.Items.Add("item1"); DropDownList1.Items.Add("item2"); DropDownList1.Items.Add("item3"); } }

    常用方法: DataBind:将数据源绑定到被调用的服务器控件及所有子控件 FindControl(id):在页面上搜索标识符为id的服务器控件。返回值为找到的控件,若控件不存在,则返回null 常用事件: init:当服务器控件初始化时发生,这是控件生存周期第一步 Load:当服务器加载到Page对象时触发的事件 2.Response对象 该对象用于回应客户浏览器,告诉浏览器回应内容的报头,服务器端的状态信息,以及输出指定的内容 常用的属性: ContentEncoding:获取或设置输出流的HTTP字符,该属性值是包含有关当前响应的字符集信息的Encoding对象 Cookies:获取响应Cookie集合,通过该属性可将Cookie信息写入客户端浏览器 Expires:获取或设置在浏览器上缓存的页过期之前的分钟数 方法: Redirect(URL):将客户端浏览器重定向到参数URL指定的目标位置 Write(string):将信要写的息写入HTTP输出内容流,参数string表示要写的内容

    Response.Write(DateTime.Now.ToLongTimeString());//显示服务器时间 Response.Write("<script language=javascript>alert('操作成功');</script>");//弹出一个信息框 Response.ContentType = "text/html";//设置文件类型 Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置文件内容编码 Response.WriteFile("1.txt"); Response.Redirect("http://www.baidu.com"); Response.Redirect("Default.aspx");

    3.Request对象 主要用于获得客户端浏览器的信息 常用属性: FilePath:获取当前请求的虚拟路径 QueryString:获取HTTP查询字符串变量集合 常用方法: MapPath(VirtualPath):该方法将当前请求的URL中的虚拟路径VirtualPath映射到服务器上的物理路径 SaveAs(filename,includeHeaders):该方法将客户端的HTTP请求保存到磁盘,filename用于指定文件在服务器上保存的位置,includeHeaders用于指示是否同时保存HTTP头

    Response.Write(Request.MapPath("Default3.aspx"));//在页面中显示请求文件在服务器中的物理路径 Request.SaveAs("d:\\abc.txt", true);//将用户的HTTP请求保存到abc.txt文件中

    通过查询字符串实现跨页数据传递:Request对象中QueryString属性用于接收来自用户请求URL地址中"?"后面的数据,通常将这些数据称为“查询字符串,也称URL附加信息”用来在不同的网页传递数据 4.server对象 该对象提供了访问服务器的一些属性和方法,帮助程序判断当前服务器的各种状态 常用属性: MachineName:该属性用于获取服务器的计算机名称 ScriptTimeout属性:该属性用于获取或设置请求超时的时间 常用的方法: Execute(path):跳转到path指定的另一页面,在另一页面执行完毕后返回当前页 Transfer(path):终止当前页的执行,并为当前请求开始执行path指定的新页 MapPath(path):返回与web服务器上指定的虚拟路径相对应的物理路径

    Server.MapPath("Default3.aspx");//将虚拟路径转换成服务器端的物理路径

    二.ASP.NET的状态管理 ASP.NET是一种无状态的网页连接机制,服务器处理客户端请求的网页后,与该客户端的连接就中断了,此外,服务器每次往返都要销毁并重新创建网页,所以就需要使用与状态管理相关的对象来保存用户数据,使用ASP.NET提供的Cookie,Session,PreviousPage对象保存并获取数据,在不同页面间实现数据共享 1.创建和使用Cookie对象 Cookie是由服务器发送给客户机,并保存在客户机上的一些记录用户数据的文本文件

    Response.Cookies["Vote"].Value = "yes";//向客户端写入Cookie Response.Cookies["vote"].Expires = DateTime.Now.AddSeconds(10);//设置Cookie的有效期为10秒

    读取Cookie: 使用Request对象的Cookies属性可以读取保存在客户机上指定Cookie的值

    string GetCookie = "";//声明一个字符串常量 if(Request.Cookies["Vote"]!=null)判断目标Cookie是否存在 { GetCookie = Request.Cookies["Vote"].Value;//读取指定的Cookie的值,赋给变量 } Response.Write(GetCookie);//向页面显示目标Cookie的值

    2.创建和使用Session对象 保存在Session中的数据可以跨网页使用,因此可以用来在不同网页中传递数据,Session是一个保存在服务器端的对象集合,避免了Cookie信息保存在客户端的不安全因素,非常适合用户保存用户名和密码等敏感信息 常用属性: Timeout:获取或设置Session对象的超时时间,默认情况下Session的生存周期为20分钟 将数据保存到Session对象,从Session对象中取出数据:

    Session["MyVal1"] = "这是Session保存的数据1"; string Val2 = "这是Session中保存的数据2"; Session["MyVal2"] = Val2; Label1.Text = (string)(Session["MyVal1"]); Label2.Text = Session["MyVal2"].ToString();

    3.使用PreviousPage属性 当页面通过Server.Transfer方法或控件的PostBackUrl属性从A页面跳转到同一个ASP.NET应用程序的B页面,可以在B中使用PreviousPage获取A中控件的属性值,可以实现跨页面的数据传递 使用示例:传递控件的属性值

    protected void Page_Load(object sender, EventArgs e)//result页面载入时执行的事件处理代码 { Label1.Text = "你的选择是:"; if (PreviousPage != null) { CheckBoxList chk = (CheckBoxList)PreviousPage.FindControl("CheckBoxList1"); for(int i=0;i<chk.Items.Count;i++) { if(chk.Items[i].Selected) { Label1.Text = Label1.Text + chk.Items[i].Text + "&emsp;"; } } } }
    Processed: 0.011, SQL: 9