龙马高新教育 策划
北京
“从入门到精通”系列是专为初学者量身打造的一套编程学习用书,由知名计算机图书策划机构“龙马高新教育”精心策划而成。
本书主要面向ASP.NET初学者和爱好者,旨在帮助读者掌握ASP.NET基础知识、了解开发技巧并积累一定的项目实战经验。当读者系统地学习完本书内容之后,就可以骄傲地宣布——“我是一名真正的ASP.NET 程序员了!”。
为什么要写这样一本书
荀子曰:不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。
实践对于学习的重要性由此可见一斑。纵观当前编程图书市场,理论知识与实践经验的脱节,是很多ASP.NET图书的写照。为了杜绝这一现象,本书立足于实战,从项目开发的实际需求入手,将理论知识与实际应用相结合。目标就是让初学者能够快速成长为初级程序员,并拥有一定的项目开发经验,从而在职场中拥有一个高起点。
ASP.NET的最佳学习路线
本书总结了作者多年的教学实践经验,为读者设计了最佳的学习路线。
本书特色
▶零基础、入门级的讲解
无论读者是否从事计算机相关行业,是否接触过ASP.NET,是否使用ASP.NET开发过项目,都能从本书中找到最佳起点。
▶超多、实用、专业的范例和项目
本书结合实际工作中的范例,逐一讲解ASP.NET的各种知识和技术。最后,还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松拥有项目经验。
▶随时检测自己的学习成果
每章首页罗列了“本章要点”,以便读者明确学习方向。每章最后的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时自我检测,巩固所学知识。
▶细致入微、贴心提示
本书在讲解过程中使用了“提示”、“注意”、“技巧”等小栏目,帮助读者在学习过程中更清楚地理解基本概念、掌握相关操作,并轻松获取实战技巧。
超值光盘
▶19小时全程同步教学录像
涵盖本书所有知识点,详细讲解每个范例及项目的开发过程及关键点。帮助读者更轻松地掌握书中所有的ASP.NET程序设计知识。
▶超多王牌资源大放送
赠送大量王牌资源,包括17小时C#项目实战教学录像、19小时网站建设教学录像、371页ASP. NET类库查询手册、48页ASP.NET控件查询手册、10套超值完整源代码、50个ASP.NET常见面试题及解析电子书、116个ASP.NET常见错误及解决方案电子书、50个ASP.NET高效编程技巧、ASP. NET程序员职业规划、ASP.NET程序员面试技巧等。
读者对象
▶没有任何ASP.NET基础的初学者
▶有一定的ASP.NET基础,想精通ASP.NET的人员
▶有一定的ASP.NET基础,缺乏ASP.NET实战经验的人员
▶大专院校及培训学校的老师和学生
光盘使用说明
01. 光盘运行后首先播放片头动画,之后进入光盘的主界面。其中包括【课堂再现】、【C#项目实战教学录像】、【网站建设教学录像】三个学习通道,和【范例源码】、【实战练习答案】、【赠送资源】、【帮助文件】、【退出光盘】五个功能按钮。
02. 单击【课堂再现】按钮,进入多媒体同步教学录像界面。在左侧的章号按钮上单击鼠标左键,在弹出的快捷菜单上单击要播放的节名,即可开始播放相应的教学录像。
03. 单击【C#项目实战教学录像】按钮,可以查看相关视频文件,在打开的文件夹中包含了教学录像及其实战源码,在【同步视频】文件夹下进入子文件夹,双击要播放的视频,即可使用电脑中的播放器进行播放。
04. 单击【网站建设教学录像】按钮,可以查看赠送的完美网站视频教学录像资源。
05. 单击【范例源码】按钮,可打开本书范例源码文件夹。
06. 单击【实战练习答案】按钮,可在打开的文件夹中看到实战练习答案。
07. 单击【赠送资源】按钮可以查看随本书赠送的资源。
08. 单击【帮助文件】按钮,可以打开“光盘使用说明.pdf”文档,该说明文档详细介绍了光盘在电脑上的运行环境及运行方法等。
09. 单击【退出光盘】按钮,即可退出本光盘系统。
网站支持
更多学习资料,请访问www.51pcbook.cn。
创作团队
本书由龙马高新教育策划,国家863中部软件孵化器组织编写,王雪涛、王雪峰任主编,吴勇、王珂任副主编。参加编写的人员分工如下:第1~3章由河南工业大学王雪涛老师编写;第4、7、10章由河南工业大学吴勇老师编写;第5、6、9章由河南工业大学王珂编写;第8及第19~21章由河南工业大学田军辉老师编写;第11及第28~30章由河南工业大学王威达老师编写;第23~26章由河南工业大学麦欢欢老师编写;第12~15章由天津工业大学李亚伦老师编写;第16~18及第22章由河南工业大学赵晨阳老师编写,全书由安徽工业职业技术学院王雪峰老师通稿。参加资料整理的人员有孔万里、李震、赵源源、乔娜、周奎奎、王果、陈小杰、左琨、邓艳丽、崔姝怡、侯蕾、左花苹、刘锦源、普宁、王常吉、师鸣若、钟宏伟、陈川、刘子威、徐永俊、朱涛和张允等。
在编写过程中,我们竭尽所能地将最准确的ASP.NET理解和感悟呈现给读者,但也难免有疏漏和不妥之处,敬请不吝指正。若您在学习过程中遇到困难或疑问,或有任何建议,可发送电子邮件至zhangyi@ptpress.com.cn。
编者
各位读者朋友,在你开始学习ASP.NET之前,我想你现在最迫切想知道的便是如何才能快速高效地去学习这样一主流开发技术。为什么对于同样一门技术,有些人可以很快掌握,而另外一些人的学习之路却举步维艰?其实这种差异很大程度上取决于他们的学习方法。接下来一起讨论一下究竟应该如何学习ASP.NET。
本章要点(已掌握的在方框中打钩)
□ 初识ASP.NET
□ 学习ASP.NET的注意事项
ASP.NET作为微软.NET Framework的一部分,是一个统一的Web开发工具,它包括使用尽可能少的代码生成企业级Web应用程序所必需的各种服务。当编写ASP.NET应用程序的代码时,可以访问.NET Framework中的类。可以使用与公共语言运行库(CLR)兼容的任何语言来编写应用程序的代码,ASP .NET开发的首选语言是C#和VB .NET,同时也支持多种语言的开发,这些语言包括JScript .NET和J#。ASP.NET具有执行效率高、世界级的工具支持、强大性和适应性、简单性和易学性、高效可管理性、多处理器环境的可靠性、自定义性、可扩展性、安全性等优点,是目前最流行的Web应用程序开发方式之一。
针对初学者,下面简单地介绍一下学习ASP.NET需要注意的几点。
首先,在清晰认识ASP.NET后,请用积极的态度对待它。
上面我们介绍了究竟什么是ASP.NET。我们必须清楚,ASP.NET并不是一种单一的编程语言,而是一种强大的Web开发技术,它有它的应用领域,也有它自己的特点。认识到这些是我们学习ASP.NET的前提。另外我们都听过这样一句话:态度决定一切。这句话可以说是一句真理,对做任何事情都适用!如果你是以一种玩笑的态度学习ASP.NET,那么我可以负责任地告诉你:你不会成功。编程是一个不断学习、不断积累的过程。要用积极的态度去学习!
其次,编程不要等学会所有的知识再去动手,而是在动手中学习。
作为一个初学者,要想学习ASP.NET并使用ASP.NET进行开发,是需要一个过程的。ASP.NET开发必须要掌握相关课程知识,如.NET面向对象的编程语言、HTML与CSS、数据库技术、网络技术等。我们在学习之前对于这些至少要有个了解,但是不可能所有的课程知识都掌握得很好,那怎么办?是把这些课程都学好了、学精了再去学ASP.NET开发?当然不能,最好是在学习ASP.NET的过程中遇到不清楚的知识点就去查相关的教材和资料,在学习的过程中进行知识的补充!一本好的教材,往往可以让你的学习达到事半功倍的效果。而本书是初学者学习ASP.NET的好帮手,是ASP.NET开发初学者从入门到精通的经典教程。书中给出的每个项目,都是由具有多年项目开发经验和培训经验的人员根据实际运用编写的实用项目;每章最后的“高手点拨”给读者介绍了一些高级应用或实用技巧;“实战练习”不但给读者提供了检测自己学习成果的机会,同时也提高了读者的动手能力。通过对本书的阅读学习,初学者不但可以掌握ASP. NET的基础知识,还可以通过举一反三的练习达到精通的目的。
要想学好ASP.NET,既要重视学习,又要注重实践,要把学习的内容运用到实际的程序中去。例如可以试着设计一个完整的网站等,这样有助于自身水平的提高。等到编程水平提高到了一定的境界后,看代码就变成了最好的学习手段,可以从别人的经验中汲取对自己有用的部分。
最后,要学会利用一切可以利用的资源。
在学习或实践的过程中总会遇到一些问题,这个时候不能急躁,不要急着借助外力,应该首先尝试着自己解决。这样不但可以锻炼自己独立分析和解决问题的能力,还可以总结很多宝贵的经验教训。实在无法解决的时候,就应该虚心请教身边有ASP.NET开发经验的人,也可以通过网络查阅资料。现在的网络资源非常丰富,借助相应的网站或论坛来解决问题是一个很好的学习方法,而且还能从中积累经验。
从另一个角度来看,我们遇到的很多问题其实也是发挥自己创造性的大好机会。真正的程序员和工程师,绝不仅仅是编写代码的劳动者。我们要站在巨人的肩膀上,充分地发挥自己的创新精神,通过自己的思考,创造出更多、更大的价值。只要以此为目标去努力,就一定会成为一名真正的程序员和工程师。
掌握了以上几点,就让我们一起开始愉快的编程之旅吧!
万丈高楼平地起,打好基础不费力!
本篇是学习ASP.NET的基础。通过本篇的学习,您将通过学习开发第1个ASP.NET动态网站,了解ASP.NET动态网站开发的基础,掌握与ASP.NET网站开发息息相关的C#语言基础、ASP.NET中的控件应用、ASP.NET的内置对象、JavaScript及jQuery、数据库与SQL基础,以及数据控件应用的相关知识,为后面深入学习ASP.NET网站开发奠定根基。
那么,就让我们进入精彩的ASP.NET编程世界吧!
第1章 ASP.NET见面礼——第1个ASP.NET动态网站
第2章 ASP.NET的游戏规则——ASP.NET网站开发基础
第3章 ASP.NET中的编程语言——C#语言基础
第4章 网页速成法——ASP.NET中的控件应用
第5章 使用已有资源——ASP.NET的内置对象
第6章 Web编程必备技术——JavaScript及jQuery
第7章 网站中的数据源——数据库与SQL基础
第8章 ASP.NET与数据库的中介——数据控件应用
本章视频教学录像:31 分钟
ASP.NET自从推出以来,经过几年的发展,已经成为Web开发的主流工具之一。那么什么是ASP.NET?ASP.NET有哪些用途?本章将为您解疑释惑。
本章要点(已掌握的在方框中打钩)
□ ASP.NET简介
□ ASP.NET 的根基—ASP.NET 开发运行环境的搭建
□ 创建我的第 1 个 ASP.NET 网站
□ 网站的发布
□ 网站的打包与安装
本节视频教学录像:4分钟
我们经常听说.NET和ASP.NET,可到底什么是.NET?ASP.NET又是什么?
所谓.NET,通常是指微软公司推出的.NET框架(即.NET Framework)。.NET Framework是一款可以提供多语言组件开发和执行支持的环境。换句话说,它能够提供一个统一编程环境,但这个环境却没有开发语言的限制。.NET存在的目的就是能够让程序员更高效地建立各种Web应用程序和服务,并让Internet上的应用程序之间可以通过使用Web服务进行沟通。
凡是接触过程序设计的人都知道,用一种语言编写出来的程序,一般来说是很难与用另一种语言编写出来的程序进行数据交换的。比如因其数据类型的定义规则不同,那么用Delphi写出来的程序,用其他语言编写程序时调用起来是非常不方便的。
那么,究竟怎样才能解决这个问题?.NET的推出,为我们提供了这样一种解决方案:使用一种对各种被支持语言都相同的公共数据类型。这就好比每个人都有自己的语言,但是为了不同国家的人之间的交流更方便,我们就给每个人都带上了一个能够把所有的语言都翻译成一种语言的工具。而这正是.NET的最大特点。它提供的公共类型系统定义了一个数据类型的集合,从而屏蔽了大部分编程语言中数据类型的差异性。比如在J#环境下使用了一个字符串,公共类型系统就能够确保在.NET的环境下你所引用的字符串对其他支持语言(如C#.NET或者VB.NET)来说是完全相同的,也就是说使用的是同一样东西。因为这里使用的string类型并非各个编程语言自己定义的数据类型,而是.NET公共类型系统里定义的数据类型。公共类型系统里的string类型在.NET框架本身中已经被定义过了。让编程语言与数据类型的定义分离,就能够使得.NET环境支持多种语言的“合作”编程,而且还不影响效率。
.NET框架主要包括3个组成部分:服务框架、公共语言运行和应用程序模板。
.NET 提供了两类模板可供用户自主选择,分别为 Windows 应用程序模板(Windows Forms)和 Web 应用程序模板(Web Forms 和Web Services),用户可以使用这两类模板分别进行快速的Windows程序的开发和Web程序的开发。
.NET的框架结构分为若干层(见上图)。第1层为VB、C#和托管C++等高级程序语言,然后是公共语言规范、数据与XML、基础类库和两类应用程序模板等层。基础类库是由微软事先编写好的各种程序和类,用以支持创建这两类应用程序所需要的各种基本服务,比如对数据的访问或是创建应用程序模板(Windows Forms和Web Forms)的操作等。
注意
在.NET中,用户使用被支持语言所写的代码,在执行的时候都会被转换为MSIL(微软中间代码),最后转化为机器码统一识别。
ASP.NET是微软公司新推出的Web开发技术,是在Windows平台下的新型Web程序开发语言。经过几年的改进和优化,ASP.NET已逐渐成为一种稳定而强大的Web语言,利用ASP.NET进行网络程序的开发和网站的开发也成为了时下的潮流。
那么,ASP.NET与传统的ASP相比,究竟有哪些新的特点呢?
我们知道,虽然ASP的产品很多,但由于传统的ASP只能使用弱类型的脚本语言进行编程,以及其解释运行的机制和开发中代码的混乱,所以一般来说难以应用在大型系统中。而且ASP产品由于安全性的问题不容易完善解决,所以一旦受到攻击,就很容易造成资料的泄露。ASP的前后台代码是不分离的,这样就会让设计者在一个界面里代码较为复杂时很难进行有效的管理,其系统出现BUG的概率和后期维护的成本也非常高。
但是ASP.NET问世后,很快就受到了广大程序员的欢迎。ASP.NET较之ASP来说功能更为强大,也更加稳定安全,已经不仅仅是对ASP的改进和增强,其条理清晰的前后台分离代码以及许许多多的集成功能更是可以达到ASP无法达到的高度,从而能够成为当今Web应用程序开发的主流。
本节视频教学录像:14分钟
要开发运行ASP.NET应用程序或网站,在计算机中要有以下环境。
⑴浏览器。
⑵NET Framework SDK。
同时,我们还需要有Visual Studio系列的开发工具。而在安装Visual Studio 2010时,会自动安装.NET Framework SDK。
Windows 7操作系统中已经自带有IE浏览器,一般无需再安装IE浏览器。本项目中我们就以Windows 7为操作系统、Visual Studio 2010作为开发工具,来进行项目的开发。
注意
开发环境的条件是缺一不可的,缺少其中的任何一个条件都会发生错误。
下面对ASP.NET的开发运行环境进行简单的说明并安装。
IIS,全称为Internet Information Services,即互联网信息服务,是由微软公司推出的基于Windows的互联网基本服务。本项目就是基于IIS服务器进行网站发布的。但是,在Windows 7系统安装盘中,默认情况下IIS是不会随系统一起安装的,所以我们在单独安装IIS时需要Windows系统盘,或者是从网上下载的安装程序。
下面以IIS 7.0为例进行安装,具体步骤如下。
⑴选择【开始】【控制面板】,单击【程序和功能】。
⑵选择左侧的【打开或关闭Windows功能】,在弹出的【Windows功能】对话框中勾选【Internet信息服务】复选框,会安装Internet信息服务的默认选项。这里建议对Internet信息服务中的【web管理工具】和【万维网服务】完全安装。
⑶单击【确定】按钮开始正式安装IIS。安装完成后提示是否重新启动计算机,建议重新启动计算机。
⑷选择【开始】【控制面板】,单击【管理工具】。从中可以看到IIS的图标,双击即可打开IIS服务器,以后就可以通过IIS来测试预览自己的网站了;如果你的计算机有独立IP,也可以把你的计算机作为服务器发布自己的网站了。
提示
这里我们介绍了IIS的安装,但是需要说明一点,因为Visual Studio 2010内置了信息服务,所以我们在调试ASP.NET应用程序时是不需要IIS的。在ASP.NET应用程序发布时需要使用IIS。
Microsoft Visual Studio 2010是面向Windows系列程序的一套完整的开发工具集合,也是开发ASP.NET应用程序的核心工具,是Visual Studio 2008的加强版本和升级版本。Visual Studio 2010在2008版本的基础上引入了许多新的特性,支持Windows Azure,微软云计算架构;支持新语言 Visual F#;支持最新C++标准,增强IDE,切实提高程序员的开发效率。
下面我们就来安装Visual Studio 2010,具体步骤如下。
⑴插入Visual Studio 2010的安装光盘,双击Setup.exe程序,单击【安装Visual Studio 2010】。
⑵安装程序会加载安装组件,加载完成后单击【下一步】按钮,开始安装,并接受安装协议。
⑶选中【我已阅读并接受许可条款】单选按钮,单击【下一步】按钮。
⑷用户可以根据自己的实际需求来选择Visual Studio 2010的安装模式和路径。选择【完全】,将安装全部的组件;选择【自定义】,可由用户来选择要安装的组件。此处选中【完全】单选按钮,然后单击【安装】按钮。
⑸系统开始安装Visual Studio 2010的各个组件,安装的组件可在左侧的列表中看到。安装时间比较长,安装期间请用户耐心等待。
⑹组件安装完成,会弹出成功安装的对话框,单击【完成】按钮,Visual Studio 2010 就成功地被安装到了计算机中,接下来用户就可以轻松地利用Visual Studio 2010 进行ASP.NET程序的开发了!
本节介绍Visual Studio 2010开发环境。
⑴选择【开始】【所有程序】
【Microsoft Visual Studio 2010】
【Microsoft Visual Studio 2010】菜单命令,启动Visual Studio 2010。初始界面如图所示。
⑵选择【文件】【新建】
【网站】
【ASP.NET网站】菜单命令,即可进入项目的开发界面。
从上图中可以看出,Visual Studio 2010的开发界面主要由菜单栏、工具栏、工具箱、编辑窗口、解决方案资源管理器和属性窗口等组成。
1. 菜单栏和工具栏
菜单栏和工具栏中包含了所有的操作命令。在其中可以通过右击工具栏,在弹出的快捷菜单中选择相应的菜单项来定制工具栏。
Visual Studio 2010的菜单栏如图所示。
2. 工具箱
工具箱中主要包含一些常用的控件,比如HTML标签和微软已经封装好的一些控件(如数据绑定控件、验证控件和导航控件等)。用户需要使用控件时,只需要将控件从工具箱中拖到界面上,或是双击控件图标即可。
在工具箱中,我们如果右键单击并选择【选择项】,就会弹出【选择工具箱项】对话框,从中可以为工具箱添加其他的一些可选控件。
提示
在ASP.NET中,我们主要使用微软已经封装好的一些控件,当然用户也可以编写一些自定义控件使用。
3. 编辑窗口
编辑窗口下方有1个【界面切换条】,这个切换条包括【设计】、【拆分】和【源】等3部分,分别代表3种视图,单击即可切换。
【设计】视图:用于设计程序的界面。
【源】视图:用于编辑程序的代码。
【拆分】视图:融合【设计】视图和【源】视图,并同步显示。
4. 属性窗口
选择【视图】【属性窗口】菜单命令打开属性窗口,从中可以按照字母顺序或是属性分类来查看某一控件对象的各个属性。除了查看之外,还可以改变控件的属性值,如控件的名称等,以满足需求。当然,也可以在代码中修改属性值,这与在属性窗口中修改是相同的。
5. 解决方案资源管理器
解决方案资源管理器是对其所属项目文件的导航。在这里可以看到项目的结构,比如各个类库、数据库文件以及系统配置文件等。用户在这里也可以添加或者删除文件,来实现对文件的管理。当然,解决方案资源管理器在项目刚创建时只包含几个必要的文件,其具体的架构还需要用户根据实际需求自己来设计。
6. 常用操作
⑴添加页面:在项目名称上点击右键,选择“添加新项”,在弹出的窗口中选择“web窗体”。在名称栏输入要添加的窗体的名称,单击“添加”即可;选择“添加现有项”可以添加本地磁盘现有的内容;选择“添加文件夹”可以添加一个文件夹。
⑵添加页面后默认打开的是页面的“源”视图,可以通过单击页面左下方的“设计”切换到设计视图。
⑶双击页面(或按【F7】键),可以切换到页面的cs文件页面,如图所示;按【Shift+F7】组合键可以从cs页面返回设计页面。
⑷Web应用程序运行都会从某个页面开始,因此可以在某个页面上单击右键,选择“设为起始页”,将该页面设置为起始页面。
⑸删除某个对象:选中项目中某个页面或者文件夹,单击右键,选中“删除”,即可删除选中项。
提示
用户在编写代码的时候,可以将文件按类型保存在不同的文件夹下,以保持项目文件系统逻辑的清晰。
本节视频教学录像:3分钟
本节利用Visual Studio 2010来创建一个ASP.NET网站。
【范例1-1】ASP.NET的“Hello World”程序。
⑴打开Microsoft Visual Studio 2010,选择【文件】【新建】
【网站】菜单命令,在弹出的【新建网站】对话框中选择【ASP.NET网站】,然后单击【浏览】按钮,选择本网站的存放路径。
⑵单击【确定】按钮完成网站的创建,显示出网站源码窗口。
⑶系统默认会打开Default.aspx页面的代码视图。单击下方的【设计】按钮,可以将其切换到设计视图。
⑷从工具箱中的标准控件中拖曳一个Label标签控件至光标处。
⑸双击页面或者按F7键,打开Default.aspx.cs页面,在Page_Load()事件中输入以下代码:
this.Label1.Text ="Hello World!";
【运行结果】
在【解决方案资源管理器】中的Default.aspx上右击,在弹出的快捷菜单中选择【设为起始页】菜单项。
按【F5】键调试运行,或单击工具栏中的按钮,在弹出的对话框中选择【不进行调试直接运行】,单击【确定】按钮,即可在浏览器中显示如图所示的结果。
提示
如果按【Ctrl+F5】组合键,则可不调试而直接运行。
【范例分析】
用户在对网站首次访问时,ASP.NET网页会被动态编译并置入用户电脑的内存,访问速度会比较慢;但是在以后的运行中,由于用户的内存中已经存在了编译的网页的信息,用户对网页的访问速度就会比较快。
本节视频教学录像:3分钟
ASP.NET网站设计开发完成后,需要发布才能让用户访问。使用什么类型的服务器以及将它放在哪里的服务器,这取决于具体要求。可以放在个人计算机上,也可以放在局域网服务器上,或者放在能够直接连接Internet的提供商(通常是商业的)服务器上。在其被正式使用前可以先对站点进行预编译,这样就可以将其部署到服务器中进行网站发布。
【范例1-2】使用Visual Studio 2010 发布网站。
⑴在Visual Studio 2010中,打开【范例1-1】中创建的HelloWorld网站,在【解决方案资源管理器】中的网站名称上右击,在弹出的快捷菜单中选择【发布网站】菜单项。
⑵在弹出的【发布网站】对话框中选择网站发布的【目标位置】。
⑶单击【确定】按钮,即可在目标位置生成编译后的网站。
【范例分析】
网站经过发布后,程序文件夹中的.cs文件已经没有了,而新创建了一个bin文件夹,文件夹中有若干个dll文件,可见网站发布的过程就是将网站的后台代码文件创建为dll形式的文件的过程。这样可以有效保护我们程序的源代码不被泄露。
所有的ASP.NET文件类型在对网站进行编译时都会被编译,但HTML等文件则会被保存原状。
网站通过预编译后,不管是放在局域网服务器上,还是想要被外界访问,都需要在服务器的IIS上进行发布。为此,只需要将IIS站点的默认路径设置为预编译后的站点保存路径即可。
本节视频教学录像:5分钟
我们能够将网站的所有文件打包成为安装程序,这样其他的用户就可以很方便地使用网站程序。
网站的打包步骤如下。
【范例1-3】使用Visual Studio 2010 打包网站。
⑴选择【文件】【新建】
【项目】菜单命令,弹出【新建项目】对话框。在左侧的【项目类型】栏里选择【其他项目类型】
【安装和部署】,将【模板】选择为【Web安装项目】,然后修改项目的名称和存放路径,单击【确定】按钮。
⑵在【解决方案资源管理器】中右击“解决方案”,在弹出的快捷菜单中选择【添加】【现有网站】菜单项,将把需要打包的网站添加到现有项目里(如在此处添加【范例1-1】中的网站)。
⑶在【解决方案资源管理器】中右击新建的项目名称(WebSetup),在弹出的快捷菜单中选择【添加】【项目输出】菜单项,选择要添加项目的路径,把内容文件添加进去。
⑷在【解决方案资源管理器】中右击【WebSetup】,在弹出的快捷菜单中选择【生成】菜单项,系统即开始生成网站的安装程序。
【运行结果】
状态栏中提示“生成成功”后,在本范例项目文件夹中的“Debug”文件夹下会生成名为“HelloWorldSetup.exe”和“HelloWorldSetup.msi”的网站安装程序。这样,一个ASP.NET程序的打包操作就成功了。
生成网站的安装程序后,接下来可以将“HelloWorldSetup.exe”和“HelloWorldSetup.msi”两个文件发给别人进行安装。
注意
“HelloWorldSetup.exe”和“HelloWorldSetup.msi”要放在同一个文件夹中。
网站的安装步骤如下。
⑴双击“HelloWorldSetup.exe”,弹出网站的安装向导,单击【下一步】按钮,设置【站点】和【虚拟目录】的名称,单击【下一步】按钮。
⑵根据提示一直单击【下一步】按钮,即可进行安装。提示【安装完成】后,单击【关闭】按钮即可。
⑶选择【开始】【控制面板】
【管理工具】
【Internet信息服务】,打开【Internet信息服务】对话框,可以看到在【默认网站】下有一个名为【HelloWorldSetup】的虚拟目录。
【运行结果】
在浏览器的地址栏中输入“http://localhost/HelloWorldSetup/Default.aspx”,按【Enter】键即可浏览网站。
提示
运行ASP.NET网站需要安装IIS和.NET Framework。如果生成安装文件后安装出现“安装程序被中断,未能…”的错误,原因有两个:一是需要使用aspnet_regiis-i注册IIS服务器;二是IIS安装不完整,尽量完全安装。
本节视频教学录像:2分钟
1. ASP.NET与C#的关系
ASP.net是微软的.net的一个开发平台框架,是一个系统平台;可以支持很多语言,是一个服务器端的脚本开发环境。而C#是一种编程语言,就像C语言一样;使用语言可以实现相应的功能。
2. ASP.NET的开发优势
界面和代码分离的开发模式;强大的开发环境支持;强大的标准工具集;安全性。
3. 网站网页开发原理
我们平时浏览的网站网页,也是使用相关Web开发技术开发的。其中很大一部分就是使用ASP. NET技术开发的。首先使用开发工具开发网站,然后发布网站,然后申请服务器或者网页空间(虚拟主机),使用上传工具将发布的网站上传到申请的服务器或者网页空间上,然后申请域名,将域名和申请的网页空间进行绑定。至此,就可以在浏览器中输入相应的域名访问网站了。
用ASP.NET编写一个简单的页面,要求实现以下功能。
⑴新建一个ASP.NET网站。
⑵做一个简单的ASP.NET页面。
⑶发布网站。
⑷安装部署网站。
⑸在IIS中预览运行结果。
本章视频教学录像:28分钟
学习ASP.NET,就要从其开发基础开始学起。本章介绍ASP.NET的基础知识。
本章要点(已掌握的在方框中打钩)
□ ASP.NET入门知识
□ HTML 基础
本节视频教学录像:7分钟
ASP.NET是一种动态网页技术,那什么是静态网页和动态网页呢?本节介绍网页设计中常用的一些术语和名词。
静态网页就是由一些HTML代码组成的Web页面,代码可以用记事本直接打开查看、编辑。静态页面一般包括文本、图像和超链接,它的外观总是不变的,用户在任何时候都会看到相同的显示内容。网页并不会记录什么人、什么时间,在哪儿通过什么方式访问过网页,这些页面也不会和数据库打交道。
静态网页的网址通常以.htm、.html、.shtml、.xml等为后缀。在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,这些“动态效果”只是视觉上的,当然静态HTML也可以存在一些动态的内容,但它们都是被动的,没有交互性或者交互性有限,与动态网页是不同的概念。
我们在网络中可以浏览到HTML的页面,其工作原理如下。
首先由浏览器根据地址访问网页,该请求被传递给Web服务器,Web服务器将其转换为HTML代码,并将HTML代码通过网络传递回用户端的计算机浏览器,浏览器解析HTML代码最终显示给用户。静态页面工作原理如图所示。
【范例2-1】静态的html页面。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
02 <head>
03 <title>静态HTML页面< /title>
04 < /head>
05 <body>
06 <h1>这是一个静态页面< /h1>
07 < /body>
08 < /html>
⑵将文件另存为【demo.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
客户端的动态页面技术仍然没有脱离HTML。简单地说,附加在浏览器上的插件完成创建动态页面的全部工作,Web页面创建者会在编写页面代码时加入一些指令,在用户向Web服务器请求页面时,本地的IE浏览器插件能够利用这些指令生成不含指令的HTML页面,也就是说,IE浏览器会根据请求在客户端动态生成页面,但这种技术现在已经很少用。
服务器端动态页面技术与客户端动态页面技术有所不同,服务器端动态页面技术将解析指令的方式从客户端转移到了服务器端。当含有指令的页面从客户端发起请求时,由服务器端解析指令并将结果以纯HTML文件流的形式传送回客户端,客户端如同接收静态网页一样处理HTML,并将结果在浏览器上显示出来。服务器动态页面中所有的代码都是在服务器端完成的,从而避免了代码泄漏,也提高了网页的速度,同时也解决了多种浏览器无法解释同一段代码的问题。
当用户刷新页面时,IE浏览器会向服务器发出请求,服务器在接到请求后要先解释指令代码,生成HTML代码,之后将页面的HTML代码和脚本的结果一起返回客户端,客户端解析HTML代码显示页面。动态网页工作原理如图所示。
我们在第1章中创建的HelloWorld网站就是1个具有动态页面的网站。
注意
这里所说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果”没有直接关系。动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,采用动态网站技术生成的网页都称为动态网页。
从网站浏览者的角度来看,无论是动态网页还是静态网页,都可以展示基本的文字和图片信息,但从网站开发、管理、维护的角度来看就有很大的差别。动态网页的一般特点简要归纳如下。
⑴动态网页以数据库技术为基础,可以大大降低网站维护的工作量。
⑵采用动态网页技术的网站可以实现更多的功能,如用户注册、用户登录、在线调查、用户管理、订单管理等。
⑶动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页。
本节视频教学录像:18分钟
本节介绍HTML语言的基础知识。
HTML即超文本标记语言,是WWW的描述语言。所谓超文本,是因为它可以加入图片、声音、动画、影视等内容,HTML文本是由HTML标记组成的描述性文本,HTML标记可以用于说明文字、图形、动画、声音、表格和链接等。HTML的结构包括头部(Head)和主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
HTML元素(Element)构成了HTML文件,这些元素由HTML标签(tags)定义。HTML文件是一种包含了很多标签(tags)的纯文本文件,标签告诉浏览器如何去显示页面。使用Windows系统的“记事本”或者其他的文本编辑器就可以编辑它们,HTML文件以.html或.htm为扩展名才会让浏览器“认识”并“解读”出来。
HTML文件的基本特征如下。
⑴标签由引文尖括号“<”和“>”框起来,如“<html>”就是一个标签。
⑵大部分标签都是成对出现的,如“<title>”和“< /title>”,第1个标签叫“起始标签”,第2个叫“结束标签”,结束标签只比起始标签多了一个“/”。
⑶标签可以嵌套,但是先后顺序必须保持一致,如<p>标签之后嵌套了<strong>标签,所以< /strong>标签必须在< /p>标签的前面。
⑷两个标签中的文本内容就是元素内容,标签就是告诉浏览器这个内容是何种元素。
⑸HTML标签不区分大小写,<p>和<P>是一样的。
⑹<HTML>< /HTML>在文档的最外层,文档中的所有文本和html标签都包含在其中,它表示该文档是以超文本标识语言(HTML)编写的。
⑺<HEAD>和< /HEAD>是HTML文档的头部标签, 在浏览器窗口中,头部信息是不被显示在正文中的,在此标签中可以插入其他标记,用以说明文件的标题和整个文件的一些公共属性。若不需要头部信息则可省略此标记,通常建议不省略。
⑻<title>和< /title>是嵌套在<HEAD>头部标签中的,标签之间的文本是文档标题,它被显示在浏览器窗口的标题栏。
⑼<BODY>< /BODY>标记一般不省略,标签之间的文本是正文,是在浏览器中显示的页面内容。
如【范例2-1】中的HTML代码。
02 <head>
在制作一般页面的过程中,经常使用的标签有以下几种。
1. 主体标签<body>
在<body>和< /body>中放置的是页面中所有的内容,如图片、文字、表格、表单、超链接等设置。<body>标签有自己的属性,设置<body>标签内的属性,可控制整个页面的显示方式。
下表显示的是<body>标签的属性。
【范例2-2】Body标签。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
02 <head>
03 <title>bady的属性实例< /title>
04 < /head>
05 <bodybgcolor="#FFFFE7" text="#ff0000" link="#3300FF" alink="#FF00FF" vlink="#9900FF">
06 <center>
07 <h2>设定不同的链接颜色< /h2>
08 测试body标签<p>
09 <a href="http://www.baidu.com/">默认的链接颜色< /a>
10 <p>
11 <a href="http://www.sina.com.cn">正在按下的链接颜色 ,< /a>
12 <p>
13 <a href="http://www.sohu.com/">访问过后的链接颜色 ,< /a>
14 <P>
15 <a href="#" onClick="window.history.back()">返回< /a>
16 < /conter>
17 < /body>
18 < /html>
⑵将文件另存为【body.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
2. 标题
标题(Headings)标签有6个级别,从<h1>到<h6>。<h1>为最大的标题,<h6>为最小的标题。通过设定不同等级的标题,可以完成很多层次结构的设置,比如文档的目录结构或者一份写作大纲。
【范例2-3】HN标签。
⑴新建1个记事本文件,并输入以下代码。
01 <HTML>
02 <HEAD>
03 <TITLE>设定各级标题< /TITLE>
04 < /HEAD>
05 <BODY>
06 <H1>一级标题< /H1>
07 <H2>二级标题< /H2>
08 <H3>三级标题< /H3>
09 <H4>四级标题< /H4>
10 <H5>五级标题< /H5>
11 <H6>六级标题< /H6>
12 < /BODY>
13 < /HTML>
⑵将文件另存为【hn.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
3. 段落
段落(Paragraphs)标签<p>是处理文字时经常用到的标签。由<p>标签所标识的文字,代表同一个段落的文字。不同段落间的间距等于连续加了两个换行符,也就是要隔一行空白行,用以区别文字的不同段落。段落内也可以包含其他的标签,如图片标签<img>。
【范例2-4】段落标签。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
03 <title>测试段落标签< /title>
04 < /head>
05 <body>
06 <p>花儿什么也没有。它们只有凋谢在风中的轻微、凄楚而又无奈的吟怨,
07 就像那受到了致命伤害的秋雁,悲哀无助地发出一声声垂死的鸣叫。< /p>
08 <p>或许,这便是花儿那短暂一生最凄凉、最伤感的归宿。< /p>
09 <p>而美丽苦短的花期< /p>
10 < /body>
11 < /html>
⑵将文件另存为【duanluo.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
4. 换行
换行标签<br>是一个空标签,也就是说,它只有起始标签和属性值,而没有结束标签。当需要结束一行,并且不想开始新的段落时,可以使用<br>标签。<br>标签不管放在什么地方,都能够强制换行。
【范例2-5】换行标签。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
02 <head>
03 <title>无换行示例< /title>
04 < /head>
05 <body>
06 无换行标记:春夜喜雨好雨知时节,当春乃发生。随风潜入夜,润物细无声。
07 <br>有换行标记:<br>春夜喜雨<br>好雨知时节,<br>当春乃发生。<br>随风潜入夜,<br>润物细无声。
08 < /body>
09 < /html>
⑵将文件另存为【br.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
5. 链接
HTML文件中最重要的应用之一就是超链接,web上的网页是互相链接的,单击被称为超链接的文本或图形就可以链接到其他页面。超级链接除了可链接文本外,也可链接各种媒体,如声音、图像、动画。
格式为:<A HREF="资源地址" TARGET="窗口名称" TITLE="指向连接显示的文字">超链接名称< /A>。
说明:标签<A>表示一个链接的开始,< /A>表示链接的结束;
属性“HREF”定义了这个链接所链接的路径;链接路径可以是绝对路径也可以是相对路径,一旦路径上出现差错,该资源就无法访问。
TARGET:该属性用于指定打开链接的目标窗口,其默认方式是原窗口。
下表显示的是TARGET属性值及描述。
TITLE:该属性用于指定指向链接时所显示的标题文字。
例如:<a href=”http://www.sina.com.cn”target=”_blank”>新浪< /a>即是一个指向新浪网的超链接。
6. 列表
在利用表格排版的时代,列表(Lists)的作用被忽略了,很多应该是列表的内容,也转用表格来实现。随着DIV+CSS布局方式的推广,列表的地位变得重要起来,配合CSS样式表,列表可以显示成样式繁复的导航、菜单、标题等。
(<ol>)为有序列表,(<ul>)为无序列表,<li>标签定义列表项目;<li>标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中。
【范例2-6】列表。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
02 <body>
03 <p>有序列表:< /p>
04 <ol>
05 <li>小学生< /li>
06 <li>中学生< /li>
07 <li>大学生< /li>
08 < /ol>
09 <p>无序列表:< /p>
10 <ul>
11 <li>雪碧< /li>
12 <li>可乐< /li>
13 <li>凉茶< /li>
14 < /ul>
15 < /body>
16 < /html>
⑵将文件另存为【liebiao.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
7. 图片
网页中插入图片用单标签<img>,当浏览器读取到<img>标签时,就会显示此标签src属性所指定的图像。如果要对插入的图片进行修饰时,仅仅用这一个属性是不够的,还要配合其他属性来完成。
定义图像的句法是:<img src="url">。
下表显示的是插入图片标签<img>的属性。
8. 表格
表格(Tables)的最初作用是放置分类的数据,但是在最近几年内,表格大多数情况下被用来排版,而很少有人真正地用它来显示数据。
<table>标签用来定义表格。一个表格使用Th作为标题行,<tr>标签代表普通行,然后每行可以被分成若干个使用<td>标签划分的单元格。Td(Table data)里面可以放数据,数据类型可以是文字、图像、列表、段落、表单、表格等。
对表格的<table>、<tr>、<th>和<td>等标签都可以设置宽度、高度、背景色等多种属性,但是一般不推荐在HTML内定义这些属性,而应该将其统一定义到CSS样式表内,以方便修改。
下表显示的是表格标记的标签及其描述。
下表显示的是<table>标签的属性。
【范例2-7】Table表格。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
02 <head>
03 <title>无标题文档< /title>
04 < /head>
05 <body>
06 <table border=10 bordercolor="#006803" align="center"bgcolor="#DDFFDD"width=500 height="200"bordercolorlight="#FFFFCC" bordercolordark="#660000" background="bg.jpg" cellspacing="2"cellp08 adding="8">
09 <tr>
10 <td>第1行中的第1列< /td>
11 <td>第1行中的第2列< /td>
12 <td>第1行中的第3列< /td>
13 < /tr>
14 <tr>
15 <td>第2行中的第1列< /td>
16 <td>第2行中的第2列< /td>
17 <td>第2行中的第3列< /td>
18 < /tr>
19 < /table>
20 < /body>
21 < /html>
⑵将文件另存为【table.html】,将bg.jpg图片和table.html文件放在同一目录下。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
9. 层
层(Div)称为定位标记,它不像链接或者表格那样具有实际的意义,其作用就是设定文字表格等摆放的位置。由于早期的浏览器对于CSS样式表的支持特别糟糕,导致层的作用被忽略了,人们更愿意用容易控制的表格来布置页面的布局。不过随着浏览器对样式表支持的力度越来越大,层的地位也有了明显的提高。在后面的学习过程中,读者就能学习到如何摆脱表格而使用层和样式表来布置美化网页。
10. 范围
范围(span)和层的作用类似,只是<span>标签一般应用在行内,用以定义一小块需要特别标示的内容,<span>标签需要通过设置CSS样式表才能发挥作用。
11. 框架
使用框架(Frames),可以在一个浏览器窗口中显示多个页面。
所有的框架标记放在一个总的HTML文件中,这个档案只记录了该框架如何分割,不会显示任何资料,所以没有<body>标记,浏览器通过解释这个总文件而将其中划分的各个框架分别对应的HTML文件显示出来。
框架虽然让页面的表现形式变得灵活起来,但是不支持框架的浏览器(例如可上网手机的浏览器)将无法浏览网页内容,要打印一个框架页面也很麻烦,同时,制作页面的过程也会变得更加复杂。
下表显示的是<frameset>的属性。
下表显示的是<frame>的常用属性。
【范例2-8】框架。
⑴新建1个记事本文件,并输入以下代码。
01 <frameset id="main" rows="110,*">
02 <frame id="top" src="">
03 <FRAMESET id="search" cols="145,8,*">
04 <FRAME id="navi" name="navi" src="">
05 <FRAME id="middle" name="middle" src="">
06 <FRAME id="rightmain" name="rightmain" src="" frameBorder="0" scrolling="yes">
07 < /FRAMESET>
08 < /frameset>
⑵将文件另存为【frameset.html】。
【运行结果】
双击此HTML文件,即可在浏览器中输出如图所示的结果。
12. 滚动文字
滚动文字(Marquee)是实现文字移动特效的一个标记,由<marquee>标签定义。该标签具有很多属性,属性越多,移动特效越丰富。
<marquee>的属性
【范例2-9】移动字幕。
⑴新建1个记事本文件,并输入以下代码。
01 <html>
02 <body>
03 <center>
04 <font face="字体2" size=6 color="#ff0000">滚动字幕< /font><br>
05 <marquee>啦啦啦~~~我会跑了< /marquee>
06 <p>
07 <marquee height="200" direction="up" hspace="200">啦啦啦~~~我会往上跑了<br>啦啦啦~~~我会往上跑了08 < /marquee>
09 <p>
10 <marquee direction="right">啦啦啦~~~我会往右跑了< /marquee>
11 <p>
12 <marquee height="200" direction="down"><center>啦啦啦 ~~~我会往下跑了 < /center>< /marquee>
13 <p>
14 <marquee width="500"behavior="alternate">啦啦啦~~~我来回地跑< /marquee>
15 <p>
16 <marquee behavior="slide">啦啦啦~~~我跑到目的地就该休息了< /marquee>
17 <P>
18 <marquee scrollamount="2">啦啦啦~~~我累了,要慢慢地溜达< /marquee>
19 <P>
20 <marquee scrolldelay="300">啦啦啦~~~我累了,我要走走停停< /marquee>
21 <p>
22 <marquee scrollamount="20">哈哈~都没有我跑得快< /marquee>
23 <p>
24 <marquee><img src="../../imge/6-2.jpg">啦啦啦~~图片也可以啊< /marquee>
25 <p>
26 <marquee bgcolor="#FFFFCC"width="700" vspace="30"><font size="+3" color="#FF0000">啦啦啦~~滚动文字有背景了< /font>< /marquee>
27 < /center>
28 < /body>
29 < /html>
⑵将文件另存为【marquee.html】。
【运行结果】
双击此HTML文件,即可在浏览器中显示文字移动的特殊效果。
13. 颜色的设定
颜色值是一个关键字或一个RGB格式的数字。在网页中用得很多。
颜色是由“red”“green”“blue”三原色组合而成的,在 HTML 中对颜色的定义是十六进位的,对于三原色HTML分别用两个十六进位去定义,也就是每个原色可有256种彩度,故此三原色可混合成16777216种颜色。
例如:白色的组成是 red=ff, green=ff, blue= ff,RGB 值即为ffffff
红色的组成是 red=ff, green= 00, blue= 00, RGB值即为ff0000
绿色的组成是 red=00, green=ff, blue= 00, RGB值即为 00ff00
蓝色的组成是 red=00, green= 00, blue= ff, RGB值即为0000ff
黑色的组成是 red=00, green=00, blue=00, RGB 值即为 000000
应用时常在每个 RGB 值之前加上“#”符号,如bgcolor="#336699"用英文名字表示颜色时直接写名字。如 bgcolor=green。
RGB颜色可以有四种表达形式:
#rrggbb (如,#00cc00)
#rgb (如,#0c0)
rgb(x,x,x) x是一个介乎0到255之间的整数 (如rgb(0,204,0))
rgb(y%,y%,y%) y是一个介乎0.0到100.0之间的整数 (如rgb(0%,80%,0%))
Windows VGA(视频图像阵列)形成了16个关键字: aqua,black,blue,fuchsia, gray,green, lime,maroon,navy,olive,purple,red,silver,teal,white and yellow
14. 表单
表单(Forms)是实现与网页访问者交互的一种途径。表单内的元素能够让访问者在表单中输入信息(如文本框、密码框、下拉菜单、单选按钮、复选框等),并且能够提交到服务器,不过这种交互操作往往需要服务器端的程序支持。
15. 注释
在HTML内添加注释可以方便阅读和分析代码,注释标签内的内容不会被浏览器显示。
注释的语法为:
<!——注释内容>
本节视频教学录像:3分钟
1. 让背景图不滚动
IE浏览器支持一个Body属性bgproperties,能够控制背景的滚动:〈Body Background="图片文件" bgproperties="fixed"〉
2. HTML 5简要介绍
HTML 5是继 HTML 4.01,XHTML 1.0和 DOM2 HTML后的又一个重要版本,旨在消除Internet 程序(RIA)对Flash,Silverlight,JavaFX等浏览器插件的依赖。HTML 5是Web核心语言HTML的规范,在浏览器中看到的一切都是HTML格式化的。HTML 5在某些Web核心上做了改进,但不是所有网站都会使用到新特性,但毫无疑问这些新特性将改变我们建立网站和使用互联网的方式。除了原先的DOM接口,HTML 5增加了更多API,如:
本地音频视频播放;
动画;
地理信息;
硬件加速;
本地运行(即使在Internet连接中断之后);
本地存储;
从桌面拖放文件到浏览器上传;
语义化标记。
1. 建立html文件,文件名称为“1.html”。
具体要求:设置网页,网页标题为“图片相关操作”。在网页中插入一副图片(图片任意,采取相对路径),并设置该图片的边框粗细为2像素,高度为200像素,宽度为300像素,图片提示文字为“实战练习”。
2. 建立html文件,文件名称为“2.html”。
具体要求:设置网页,网页标题为“课程表”。制作如下图所示的课程表(表格的边框粗细为1像素,边框颜色为#000000,宽度400像素,高度200像素,单元格间距为0像素,内容居中显示)。