第2章ASP.NET应用程序基础内容提要网页设计基础ASP.NET应用程序类型ASP.NETWeb应用程序结构ASP.NETWeb窗体的结构简单的ASP.NET应用程序2.1网页设计基础静态页面动态页面HTML语言XHTML语言HTML表单和Web表单静态页面在网站设计中,纯HTML格式的网页通常被称为“静态网页”,网页URL通常以.htm、.html、.shtml、.xml等常见形式为后缀。所谓“静态”是指网站的网页内容“固定不变”,客户端浏览器访问.htm文件时,IIS不经过任何处理就直接送往浏览器,由浏览器解释执行。在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,这些“动态效果”只是视觉上的。动态页面动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为后缀。动态网页使用的语言:HTML+ASP或HTML+PHP或HTML+JSP等。在服务器端运行的程序、网页、组件,属于动态网页,它们会随不同客户、不同时间,返回不同的网页,例如ASP、PHP、JSP、ASP.NET页。动态网页以数据库技术为基础,可以大大降低网站维护的工作量。HTML语言HTML(HyperTextMarkupLanguage),称为超文本标记语言,是网页制作的最基本要素。HTML是一种纯文本类型的标记式语言,利用标记来标识信息,不需要翻译而直接从浏览器解释执行,通过一些标记来告诉浏览器怎样显示内容。一个标记称为一个元素,每个标记都用一对括起来,大部分标记是成对使用,只有个别的是单独使用。每个标记都有自己的名称和属性,标记的属性告知浏览器如何显示网页。HTML文档结构一个有效的HTML文档通常包括三大部分:版本信息说明性HTML标题文档主体版本信息版本信息也被称为文档使用的类型声明,使用!DOCTYPE标签声明,该标签可声明三种DTD(DocumentTypeDefinition,文档类型定义)类型,分别表示Strict、Transitional和Frameset类型的HTML文档。版本信息应该包括正在使用的DTD的类型。如下是一种文档类型声明:!DOCTYPEHTMLPUBLIC“_//W3C//DTD//HTML4-01Frameset//EN”声明了文档的根元素是html,它在公共标识符被定义为“_//W3C//DTD//HTML4-01Frameset//EN”的DTD中进行了定义,浏览器将明白如何寻找匹配此公共标识符的DTD。如果找不到,浏览器将使用公共标识符后面的URL作为寻找DTD的位置。说明性HTML标题(HEAD)说明性HTML标题(HEAD)包含标题(title)和元数据(metadata)。META标签提供用户不可见的信息,分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME)。headtitle文件头,显示在浏览器标题区/titlemetahttp-equiv=Content-Languagecontent=zh-cnmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312metahttp-equiv=Refreshcontent=30metaname=Generatorcontent=MicrosoftFrontPage4.0metaname=Keywordscontent=HTML网页制作网页/head文档主体(BODY)文档主体(BODY)是html文档的主要部分,包含实际的文档内容。在body/body之间的内容将显示在浏览器窗口的用户区内。【例2-1】htmlheadtitle网页设计基础/title/headbodybgcolor=blueh1这是H1字体/h1h2这是H2字体/h2h3这是H3字体/h3h4这是H4字体/h4/body/htmlXHTML语言HTML的主要缺点:太简单。不能适应现在越来越多的网络设备和应用的需要,比如手机、PDA、信息家电都不能直接显示HTML太庞大。由于HTML代码不规范、臃肿,浏览器需要足够智能和庞大才能够正确显示HTML数据与表现混杂。网站页面要改变显示,就必须重新制作HTMLW3C制定了XHTML(eXtensibleHyperTextMarkupLanguage,可扩展的超文本标记语言),XHTML是HTML向XML过渡的一个桥梁。XHTML是一种为适应XML而重新改造的HTMLXHTML的特点XML(eXtensibleMarkupLanguage,可扩展标记语言)是Web发展的趋势,XHTML是当前替代HTML4.0标记语言的标准,使用XHTML,只要遵守一些简单规则,就可以设计出既适合XML系统,又适合当前大部分HTML浏览器的页面。使用XHTML的另一个优势是:它非常严密。XHTML能与其他基于XML的标记语言、应用程序及协议进行良好的交互工作。XHTML是Web标准家族的一部分,能很好地用在无线设备等其他网络设备上。XHTML的核心规则标记成对使用或使用自封闭的标记(如br/来代替br)。标记和属性名字必须是小写。属性值必须封装在成对的引号中。标记必须正确嵌套。把所有和&特殊符号用编码表示(<和&)。给所有属性赋一个值,没有值的就重复本身。如:inputtype=checkboxname=shirtvalue=mediumchecked=checked/常用XHTML元素(1)!DOCTYPE…表示文档类型声明。html…/html表示这是一个XHTML文档,其它所有的XHTML元素都位于这两个元素之间。head…/head表示文档头部信息。title…/title表示浏览器标题栏中信息,应包含于head…/head中。style…/style表示CSS样式信息,应包含于head…/head中。body…/body表示文档主体部分。p…/p表示一个段落。br/表示换行。hr/表示水平线。常用XHTML元素(2)tablecaption表格标题信息/captiontrtd…/tdtd…/td/trtrtd…/tdtd…/td/tr/tabletable表示一个表格,其中tr表示一行,td表示一个单元格。常用XHTML元素(3)ahref=intro.htm我的简介/a表示在浏览器上显示超链接“我的简介”,点击后链接到intro.htm。ahref=mailto:kxsg@21cn.com我的邮箱/a表示浏览器上显示超链接“我的邮箱”,单击链接后给kxsg@21cn.com发邮件。XHTML常用的实体符号表字符表示方法字符表示方法字符表示方法空格 小于号<大于号>''"''&&©©®®¥¥HTML表单HTML表单包含了表单内部控件和相应的布局信息。HTML表单HTML表单是在Web页中的form和/form标记之间定义的控件组,用于让用户输入数据并提交。例:formmethod=postaction=page.asp输入您的用户名:inputtype=textname=usernameinputtype=submitname=okvalue=提交/formWeb表单ASP.NET引入了Web表单的概念。Web表单中则包含了表单内部控件、相应的布局信息及数据提交后的数据处理代码。Web表单Web表单和HTML表单从本质上来讲是完全不同的表单,但在表现形式上没有太大差别。Web表单通常采用下面的方式来表示:formrunat=”server”……/form2.2ASP.NET应用程序类型ASP.NET提供了增强的应用程序类型,包括:ASP.NETWeb应用程序移动Web应用程序Web服务ASP.NETWeb应用程序ASP.NETWeb应用程序是大部分ASP.NETWeb开发中创建的应用程序类型。最简单的ASP.NETWeb应用程序包含一个目录,它至少包含一个.aspx文件,即ASP.NET页。移动Web应用程序ASP.NET移动Web应用程序是针对移动设备而设计的。移动Web应用程序与普通的Web应用程序之间的主要区别在于:移动Web应用程序使用移动Web控件。另外,还添加了移动设备专用的控件。移动Web窗体页和普通的Web窗体页可以共存于同一个应用程序之中。Web服务Web服务是ASP.NET提供的另一种应用程序类型,建立在.NETFramework和公共语言运行库之上。Web服务的工作方式就像能够跨Web调用的组件。通过访问和使用远程Web服务可以访问不同系统中的数据。Web服务的基础结构是遵照SOAP、XML和WSDL等行业标准生成的,这使得Web服务可以和其他兼容的组件进行交互操作。2.3ASP.NETWeb应用程序结构ASP.NETWeb应用程序的结构主要由一个站点或者IIS虚拟目录组成。一般情况下,ASP.NET应用程序可能有如下的文件:Web窗体页(.aspx文件)Web服务(.asmx文件)代码隐藏文件(.cs或.vb文件)应用程序配置文件(web.config文件)ASP.NET网站配置文件(Global.asax文件)用户控件文件(.ascx文件)程序集(.dll)提供额外功能的类文件等2.4Web窗体的结构(1)@指令ASP.NET用作页面处理的指令。最常用的指令为@Page指令,如:%@PageLanguage=C#%该指令指定页面中代码的服务器端编程语言为C#。服务器代码代码隐藏或代码后置,即将代码放在单独的文件中代码内嵌,将代码放在同一页面文件中包含在script/script标记之间,由变量、成员声明及代码构成的块。例如:scriptlanguage=C#runat=server//程序代码/scriptWeb窗体的结构(2)form元素如果页面包含允许用户交互并提交的控件,则该页面必须包含一个form元素。form元素必须包含runat属性,其属性值设置为server。例如:formid=form1runat=serverasp:LabelID=Label1runat=serverText=Label/asp:ButtonID=Button1runat=serverOnClick=Button1_ClickText=Button//formWeb窗体的结构(3)静态文本和HTML元素Name:inputtype=textid=txtNameWeb服务器控件asp:TextBoxid=Mytextrunat=server/HTML元素作为服务器控件inputtype=textid=MyTextrunat=serverASP.NET网页指令网页指令用于指定当前页和用户控件编译器处理ASP.NET的Web窗体页(.aspx)和用户控件(.ascx)时所使用的设置。虽然指令可以位于.aspx和.ascx文件中的任何位置,但是通常情况下将指令放在文件的开头。每个指令都可以包含一个或者多个属性,它们与相应的值成对出现。ASP.NE