元素中,则这个错误就不存在了,而页面的外观不会发生任何变化:
Left-hand content here
Right-hand content here
ASP.NET自动产生的所有代码都遵循XHTML的规则。到目前为止您还没有创建过动态内容,那就让我们看看如何创建更令人兴奋的页面吧。 为了从HTML的静态世界转移到ASP.NET的动态世界,很重要的一点是要知道动态内容是什么意思。 在单击网页表单中的按钮时,用户希望能发生一定的动作—— 大多数时候(如果页面的代码编写正确),确实会有动作发生。用户可能会通过单击一个按钮提交订单购买一些CD。用户还可能从页面的菜单中选择某项内容—— 例如,单击Wrox United站点中的某个菜单项。单击该菜单将使其内容弹出来(如图3-15所示),可以选择这些内容,就像单击Windows的开始(Start)按钮一样。 可以注意到,单击这个菜单和单击另一个不同的菜单之间没有延迟—— 页面的反应就像自己的系统一样。浏览器在显示这些菜单的内容时确实执行了一些本地代码。单击页面表单上的按钮或链接可能会需要更长的时间才能响应。单击页面上的按钮、超链接或其他类似的元素都将使得浏览器开始和服务器进行通信、请求某些内容或发送一些数据。 图 3-15 动态客户端代码和动态服务器代码 将鼠标放在Wrox United站点的菜单上会运行一些代码,这些代码很可能是用JavaScript编写的,大多数浏览器都能理解和运行这种编程语言,它用于向用户输入提供快速的响应。页面不会闪动和刷新(与单击超链接不同),因为当用户将鼠标停留在菜单上时,浏览器已经知道要显示的是什么内容了。这是一个动态客户端代码的例子。 如果请求一个复杂得多的响应(例如,在购物站点上提交一份订单或者在购物站点上搜索某个特定的商品),页面会将信息提交回Web服务器处理。在服务器上完成处理的代码就是动态服务器代码,也是您在阅读本
书
关于书的成语 关于读书的排比句 社区图书漂流公约怎么写 关于读书的小报 汉书pdf
的过程中将要学习编写的代码。 可以使用多种不同的语言编写服务器端代码,而不仅仅是ASP.NET中的VB.NET、C#或其他.NET语言。您可能已经听说过PHP和JSP(Java Server Pages)—— 开发人员也使用这两种语言编写服务器端代码。每种语言都有它的优点和不足,但要找到一种和ASP.NET一样易于使用和功能强大的服务器端技术是非常困难的。 当说到在ASP.NET中创建动态页面时,最快的方法就是将服务器端控件拖放到页面上、设置这些控件的属性、最后编写代码定制它们的功能。ASP.NET的最新版本对拖放结构进行了很大的改善,使得可以不用编写任何代码就可以创建整个站点的结构性架构。 在查看Visual Web Developer的工具箱时,可以看到几个不同的区域,每个区域都包含了一组不同的工具。其中很多工具都是服务器控件,在开发ASP.NET应用程序时,会用到这些控件。 在ASP.NET页面上,服务器控件表现为一个标记;例如
。这些标记不是标准的HTML元素,因此如果它们出现在网页上,浏览器将无法理解它们,然而,当从Web服务器上请求一个ASP.NET页面时,这些标记都将动态地转换为HTML元素,因此浏览器只会接收到它能理解的HTML内容。 这一节首先查看一些可以使用的控件的类型,然后讨论它们如何工作。 3.4.1 服务器控件工具箱 工具箱中的服务器控件分组多得让人难以区分。开发人员不仅可以选择标准的网页元素(例如单选按钮、超链接和下拉列表框等),还可以选择其他类型的控件(如图3-16所示),这些类型包含了更多可用的控件。根据所编辑的页面类型,工具箱的外观将发生变化,图3-16是在创建ASP.NET页面时的标准外观。 图 3-16 可用的控件类型包括: ● Standard:常用控件,网页上90%的元素都来自于这个类型。 ● Data:用于连接数据源(数据库或XML文件)的控件。 ● Validation:可添加到网页上验证用户输入的控件(例如,确保特定的文本框中包含了数据,或者输入的数据格式必须正确)。 ● Navigation:为站点提供简单而快速的导航
方案
气瓶 现场处置方案 .pdf 气瓶 现场处置方案 .doc 见习基地管理方案.doc 关于群访事件的化解方案 建筑工地扬尘治理专项方案下载
的控件(例如,超链接的动态菜单和breadcrumb)。 ● Login:一组控件,用于简化从一个完全开放的站点转移到具有个人特色的站点。 ● WebParts:用于简化创建Sharepoint风格的站点,这种站点带有可以拖放的区域,称为Web Part,使得用户可以重新安排站点的外观。 ● HTML:简单的HTML元素。 在本书的后续章节中,将了解到每种类型的多个控件。在本章的后面,您可以在为Wrox United站点创建菜单时用到一些导航控件。 3.4.2 服务器控件 让我们从第一条规则开始—— 在创建一个简单的HTML页面并将其保存到本地文件系统中时,双击该文件就可以在浏览器中查看它。如果只是搭建一个静态的HTML站点并希望测试输出,这样做是可以的,但是在开发网站时,无法要求用户先下载网页然后再查看!这就是为什么网站在部署之后,必须上载到Web服务器的原因,每个人都可以通过它的URL(Uniform Resource Locator,统一资源定位符)进行访问。 既然站点部署到Web服务器上,人们就可以从其他机器访问这个站点,浏览各个HTML页面。然而,如果服务器上安装了所需的软件,那么就可以提供更多的功能,而不仅仅是静态HTML页面。在请求HTML页面时,服务器找到对应的文件并将其发送给用户;而在请求ASP.NET页面时(扩展名为.aspx的页面),服务器将在文件系统中找到并读取对应的页面,然后执行某些处理,再将结果页面发送给用户。“执行某些处理”就是ASP.NET的功能所在。 服务器执行的额外处理包括读取ASP.NET页面并将页面上的服务器控件转换为浏览器可以理解的HTML。记住,浏览器无法理解ASP.NET。Web浏览器只理解HTML,可能也理解JavaScript—— 但它不能处理ASP.NET代码。服务器读取ASP.NET代码并进行处理,将所有ASP.NET特有的内容转换为HTML以及(如果浏览器支持的话)一些JavaScript代码,然后将最新生成的HTML发送回浏览器。 将ASP.NET代码转换为HTML的过程就是服务器控件怎样工作的过程;在开发源.aspx页面时,可以将任意的服务器控件放置到页面上,然而从服务器请求该页面的浏览器将只会接收到HTML和JavaScript(如图3-17所示)。这是一个必须理解的关键概念,服务器所执行的处理过程将在第6章详细讨论。 图 3-17 下面用一个简单的示例帮助您理解这个概念。这个“试一试”是一个非常简单的示例,它将演示ASP.NET代码和HTML代码的区别。 (1) 再次打开Chapters03站点。 (2) 右击站点的根目录并选择Add New Item。 (3) 在弹出的对话框内(如图3-18所示),选择Web Form,将页面命名为ServerControls.aspx,从下拉列表中选择喜欢的语言,同时两个复选框都不要选中。 图 3-18 (4) 如果没有处于Design View中,则确保切换到这个模式并从屏幕左边工具箱的Standard区域双击TextBox控件(如图3-19所示)向页面添加文本框。 (5) 这就可以查看这个页面了,单击工具栏上的运行按钮(绿色的箭头,将鼠标放在该按钮上时会显示提示Start Debugging)。 浏览器将启动并显示该页面。如图3-20所示。 图 3-19 图 3-20 注意在地址栏内显示的数字(在localhost后面)是一个随机数,每回第一次开始调试时这个数字都会变化。 操作回顾 在这个示例中,仅仅向一个ASP.NET页面添加了一个服务器控件并在浏览器中查看该页面。这并不是一个非常有趣的示例,但本例的重点是观测服务器端代码是怎么转换为客户端代码的。 首先,单击浏览器的View菜单并选择View Source—— 应该看到在Notepad内显示的代码,如图3-21所示。 这是客户端代码—— 呈现的页面输出。将该代码与最初的代码比较;切换回VWD并单击Source View查看该页面的代码(如图3-22所示)。 图 3-21 图 3-22 需要注意的代码是描述服务器控件的代码,该控件的ID是TextBox1。这些代码如下所示,这是它们在页面的源代码中的样子:
在呈现的源代码中,对等的代码是:
注意最初的TextBox1控件已从ASP.NET控件转换为HTML元素。服务器接收到关于该页面的请求,并从源请求中知道浏览器能够理解HTML,因此服务器将控件转换为HTML版本并与页面的其他部分一起发送回浏览器。浏览器完成剩余的动作,将HTML代码转换成可以浏览的网页。 3.4.3 VWD的Source View Visual Web Developer在创建和编辑页面的时候主要有两种模式。在前面的示例中刚使用过Design View,在本书中我们也将(在可能的情况下)专注于Design View以减少输入的代码量。然而,Source View在手动编辑页面和修改细微的问题时非常有用,因此现在有必要研究一下这种模式,并熟悉它的功能。在下面的示例中,我们将向页面添加另一个控件;但是这一次是在Source View内完成添加。 (1) 回到VWD并确保位于ServerControls.aspx页面的Source View中(单击窗口底部的Design和Source按钮在两种模式之间进行切换)。在代码中,紧接着前一个示例中表示TextBox控件的代码后面单击鼠标。
(2) 在Source View中添加服务器控件时有两个选择;可以手动输入代码,或者从工具箱中拖放控件,类似于在Design View中使用的技术。首先以比较难的方式完成—— 开始输入如下代码:
注意当输入ImageUrl属性的时候,VWD将显示一个本地图片列表供开发人员选择(如图3-24所示)。 图 3-24 (4) 再向页面添加一个控件;这一次,使用双击的技术进行添加。在