ASP.net的总结(二:具体内容)

概述

       关于这博客的理论知识,大家可以看上一篇博客,在这里就不重复了。



用户控件和母版页

       用户控件提供了小范围的风格控制和更灵活的代码重用;母版页提供了整个页面级的风格控制和代码重用。

       用户控件的创建

              项目名称上右击—添加—新建项—Web用户控件;通过把通用的控件组合在一起,编写相应的事件执行代码,来完成用户控件的创建。

       用户控件的使用

              直接往Web页面上拖放用户控件就可以使用,Web页面获得用户控件上的属性的过程,向往自定用用户控件中添加相应的属性,然后,在Web页面就可以访问了。具体如下:

用户控件类中添加的属性

        public string age
        {//只读和只写只需写其中的一个就可以了
            //读属性
            get
            { return TextBox1 .Text; }
            //写属性
            set
            { TextBox1 .Text = value; }
        }
Web页面中的使用

        protected void Button1_Click(object sender, EventArgs e)
        {
            WebUserControl11.age = "你好!";//WebUserControll1为用户控件的ID
        }


       母板页的创建

               项目名称上右击—添加—新建项—母版页;想设置Web网页一样设置就行,不过需要说的是:<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">这个为占位符,是为使用该模板页的网页站的的位,模板页不能在里面设置相应的控件</asp:ContentPlaceHolder>,VS 2010会自动加上占位符,但是在子母版中需要手工的写上。

       套用母版页的Web页的创建

               项目名称上右击—添加—新建项—使用母版页的Web页面—选择相应的母版;创建子母版的时候,就是选择嵌套的子母版页。

               下面是关于母版页和引用母版页的Web页面的界面设计代码的对比

母版


引用上母板的Web页面


                获得母版页中控件属性的代码如下:

Calendar ca = (Calendar)this.Master.FindControl("Calendar1");
       上面的代码可以访问母版中控件属性,注意,如果是Web页面套用的是子母版,那么就不知道怎么访问相应的控件了,希望知道的告知。


Response对象

       用于输出数据到客户端,包括向浏览器输出数据、重定向浏览器到另一个url或向浏览器输出Cookie文件。

       输出具体数据

              Response.Write("显示在浏览器中");

       输出含有特殊字符串集合的数据

              Response.Write("<A Href=default.htm> 带有HTML标签的数据 </h3>"); Response.Write("<script language=javascript> alert('带有客户端脚本程序的数据') </script>");      

              浏览器接收到字符串后,马上进行相应的解释,然后将结果显示到浏览器上。

       输出文件

              Response.WriteFile("file.txt");

              将文本文件的所有内容直接写入输出流传送到浏览器那。

       使网页转向(输出整个静态页面)

Select Case txtName.Text
           Case "adimn"
                    Response.Redirect("ManagePage.aspx?uid=" + txtName.Text + "&pwd=" + txtPwd.Text)
           Case "teacher"
                     Response.Redirect("TeacherPage.aspx?uid=" + txtName.Text + "&pwd=" + txtPwd.Text")
           Case Else
                     Response.Redirect("StudentPage.aspx")
End Select

       

Request对象

       主要功能是从客户端得到数据,包括基于表单的数据和通过URL发送的参数列表信息,还可以接收来自用户的Cookie信息。

       Post和Get的区别

              ASP.net中通过表单向服务器端发送数据,其发送数据方式有两种(沿用HTML的):Post和Get。Get是将传送的数据附加到URL后面;Post方法是将传送的数据,封装为一个数据集进行传送过去。

       Post方法时信息的读取

              string strUserName = Request.Form.Get("txtUserName").ToString();注意form相当于一个集合,所以,有多种方法获得相应的数据。string strUserName=Request.Form["txtUserName"].ToString(); 

       Get方法时信息的读取

             string strUserName=Request.QueryString["txtUserName"].ToString();    string strUserName=Request.QueryString.Get("txtUserName").ToString();    Request["txtUserName"].ToString();

       小结

             无论哪种提交方法,都可以用这种方法:Request["txtUserName"].ToString();获得数据。


Server对象

       提供服务器功能(交互)的对象。

       属性

              MachineName:获得服务器所在计算机的名称

              ScriptTimeOut:获取和设置请求超时(以秒计算)

      方法

             UrlEncode和UrlDecode,HtmlEncode和HtmlDecode:上篇博客提到过,数据在传送中的统一编码方式,这个就是将那些特殊的变成普通的传送,到了之后,将那些普通的再进行逆向工程,得出其真正的数据,防止那些特殊的字符出现乱码的情况。从这个我们可以推出,现在http传送的数据的编码方式,仍然是ASCII码,这样才会出现那些特殊字符(汉字)没有相应的码,而被乱编了,这样显示的时候,才会出现失真的情况出现。

             MapPath:将虚拟路径或相对于当前页的相对路径转化为Web服务器上的物理文件路径。Server.MapPath("/default.aspx");  


Application对象

        应用程序的集合,Application对象相当于是一个集合,在他里面能够记录一组变量,这组变量都是用Key Value这种结构组成的,可以被所有客户端用户(每一个套接字)操作里面的数据。

       基本操作如下:

       添加或创建一个对象

              Application.Add("key",value);或Application("key")=value;

       获取Application集合中某个对象的值

              int i = (int)Application("key");或int i = Application.Contents["key"];或int i = Application.Get("key")

              因为集合里面的都是对象,需要对其进行类型转换。

       更新集合中的对象值

              Application.Set("key",value);或Application["key"] = (int)Application["key"] +1;更新的时候最好加上锁机制:application.Lock()和Application.UnLock()。

       移除对象

              Application.Remove("key");移除指定对象。Application.RemoveAll();或Application.Clear()移除所有对象。


       基本事件

              Application_Start,Application_End和Application_Error。这些事件在Global.asax文件中。Global.asax文件时一个可选(可以没有,有只能有一个)的文件,该文件包含响应ASP.net应用程序或HTTP模块所引发的应用程序级别和会话的代码(事件)


Session对象

        保存与当前用户会话相关的信息,与Application类似。当前用户就是一段时间内的一个套接字。这个对象使当前用户在应用程序的页面之间跳转时,存储在Session对象中的变量不会被清楚。

        Session的操作和上面的一样,只要把Application换成Session就行了。Global.asax文件中也有相应的Start和End事件。


Cookie对象

        集合对象,和Application和Session对象很类似,都可以用来保存数据信息,但Cookie是将数据存放于客户端的硬盘上,而Application和Session对象是将数据存放在服务器端。

        Cookie分为会话Cookie和持久性Cookie。会话Cookie在会话结束后就没有了;持久性Cookie在指定的时间就没有了。

       创建单个值的Cookie

 Response.Cookies["UserID"].Value = "1";
 Response.Cookies["UserID"].Expires = DateTime.Now.AddMonths(1);
               这两段代码的意思就是,向浏览器输送一个单值Cookie,有效时间:从今往后的一个月。这段代码执行后,浏览器就会接收到那个Cookie,此时,不用我们在客户端编写任何代码,浏览器会自动将Cookie的相应信息存放到硬盘的某个位置,当再一次访问这个网站里的任何一个网页时,浏览器都会自动的发送相应的Cookie。

       接收单值Cookie

string strCookie = Request.Cookies["UserID"].Value; 
       创建多值Cookie

            Response.Cookies["V"]["UserID"] = "1";
            Response.Cookies["V"]["UserPWD"] = "2";
            Response.Cookies["V"].Expires = DateTime.Now.AddMonths(1);
       接收多值Cookie

            HttpCookie objCookie;
            objCookie = Request.Cookies["V"];            

            if (objCookie == null)
            {
                Response.Write("Cookie为空");
            }
            else
            {
                string strName = objCookie.Values["UserID"];
                string strPwd = objCookie.Values["UserPwd"];
                Response.Write(strName.ToString());
                Response.Write(strPwd.ToString());
            }

配置文件

       只说一下Web.Config的配置,详细内容和解释,请看代码和相应的注释

<!--配置文件的根节点-->
<configuration>
	
	<!-- 对整个应用程序的配置设置 -->
	<system.web>
		<!-- 应用程序的所有页面设置缓存;开启ViewState功能 -->
		<pages buffer="true" enableViewState="true" />
			
		<!-- 浏览器访问出现错误时,服务器会经友好的界面返回浏览器 -->
		<customErrors defaultRedirect = "自定义友好错误界面的url" mode="On|Off|RemoteOnly">			
			<!-- 当错误页的HTTP状态码为500时,浏览器显示url;否则显示默认 -->
			<error statusCode = "500" redirect ="url"/>
		</customErrors>
	</system.web>
	
	
	<!-- 这个是VS 03版本的格式:用户自定义设置 -->
	<appSettings>		
		<add key = "strConn" value = "server=.; uid=sa; pwd=password; database=pubs"></add>
	</appSettings>
	<!-- 和appSettings的功能一样:用户自定义设置;是VS 05及以上的版本的格式 -->
	<connectionStrings>
		<add name= "strConn" connectionString= "server.; uid=sa; pwd=password; database=pubs"></add>
	</connectionStrings>	
</configuration>

          从配置文件中获得自定义区域中的值

                     首先是添加引用:System.Configuration。

                     当访问<appSettings>节点中的变量时的代码如下:

//string a = ConfigurationManager.AppSettings["sqlConnectionString"].ToString();
string a = ConfigurationManager.AppSettings["sqlConnectionString"].ToString();
                     当访问<connectionStrings>节点中的变量时的代码如下:

//string myCon = ConfigurationManager.ConnectionStrings["strCon"].ConnectionString;
string myCon = ConfigurationManager .ConnectionStrings ["strCon"].ToString ();
         关于配置文件的一些其他内容,你可以参考这篇博客: VB.net配置文件


学习过程

       先是看《天空穿》那个视频,只是看了一下,里面的例子没有敲,然后就是看《北大青鸟》(里面的例子大多都实现了),然后,就是总结,总共时间用的很长,从7月20到8月10号,差不多一个月吧,排除开会时间,排除学英语时间后,学习ASP.net的时间也是用的不少,我的天啊,不敢细想了。以后的学习过程中视频将不是重点,吸收多少算多少。

      

总结

       需要学习的东西还很多,继续加油!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值