ASP.NET4.5高级编程(第8版)

ASP.NET4.5高级编程(第8版)"

作者:[美]JasonN.Gaylord,ChristianWenz,PranavRastogi,ToddMiranda,ScottHanselman著李增民
ISBN:9787302353232
定价:¥128
字数:千字
页数:
出版时间:2014.04.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

全面涵盖使ASP.NET应用程序高效运行的新工具

ASP.NET是微软提供的免费Web框架,通过使用HTML、CSS和JavaScript创建Web应用程序。本书针对ASP.NET 4.5做了全面修订,解释了ASP.NET的功能,并把One ASP.NET放在更大的环境下讨论。本书融合了专家团队建立和部署站点的丰富经验,以及经过实地测试的专业知识,同时涵盖ASP.NET 4.5提供的一组新工具,从而创建高效运行的ASP.NET应用程序。

前言

前    言

ASP.NET 4.5是一种令人惊异的建立Web解决方案的技术。ASP.NET自从诞生之日起, 就引入了许多技术,成为当今最有竞争力的Web框架。ASP.NET 4.5建立在ASP.NET以前版本的基础之上,但它主要关注的是开发人员的工作效率。

本书将介绍ASP.NET的所有内容,除了论述新主题外,还列举了一些有关这些新技术在实际操作中运用的例子。

0.1  ASP.NET的过去、现在和未来

ASP.NET 4.5是该产品的另一个主要版本,建立在以前版本的基础之上,并带有新增的功能。该版本继续朝着如下方向前进:使ASP.NET开发人员成为Web领域最有效率的开发人员。在ASP.NET的每个版本中,Microsoft团队都把其目标设定为开发效率、管理、性能和可伸缩性。本书将讨论ASP.NET和.NET Framework中的新功能。

ASP.NET已推出10余年。它在第一次发布时,重点关注的是将使用VBScript或JScript创建ASP页面的现有Web编程模型转变为面向对象模型。为了帮助进行此转变,ASP.NET包含了几个服务器控件以封装常见的功能。

随着时间的流逝,开发人员开始需要更多地控制所显示的标记。于是,ASP.NET有了变化,出现了新的Web范型,诞生了ASP.NET MVC等技术。另一方面,ASP.NET Web窗体继续控制着开发的主要过程。因此,以前的几个ASP.NET版本把重点放在用服务器控件正确显示标记上。

但是,与大多数Microsoft团队一样,VS团队的发布周期也是2到3年,但ASP.NET团队跟不上Web技术的发展步伐。本书的第1章将详细解释ASP.NET团队如何更频繁地发布产品的带外(Out-Of-Band,OOB)版本,以处理这个两难的问题。该章还讨论ASP.NET团队的开源活动。实际上,许多ASP.NET技术都已经发布为真正的开源产品。

用ASP.NET进行Web开发是件很令人兴奋的事。

0.2  使用本书的要求

在使用本书中的示例时,最好安装Visual Studio 2012,但只安装Microsoft的Notepad或WebMatrix,以及.NET Framework 4.5附带的命令行编译器也可行。要运行本书的所有示例,需要:

●  Windows 8、Windows 7、Windows Vista、Windows Server 2012或Windows Server 2008

●  Visual Studio 2012(这会安装.NET Framework 4.5)

●  SQL Server 2012、2008、2005或SQL Server Express Edition

使用ASP.NET 4.5时,并不需要安装Microsoft Internet Information Services (IIS),因为Visual Studio 2012包含内置的Web服务器IIS Express。即使没有SQL Server的完整版本,也不必担心。使用该数据库的许多例子都可以改为使用SQL Server Express Edition,可以从Internet上免费下载该数据库版本。

0.3  本书读者对象

本书介绍的是ASP.NET 4.5提供的新功能,并解释ASP.NET的基础知识。因此,读者应大致了解Web技术,如ASP.NET的以前版本或PHP等其他Web技术。如果读者具备Web编程的基础知识,阅读本书的内容就不会有什么问题。

如果读者是ASP.NET新手,就应首先阅读由Imar Spaanjaars编写的《ASP.NET 4.5入门经典(第7版),掌握ASP.NET的基础知识。

除了具备Web技术的相关知识之外,读者还应对基本的编程结构有一定的了解,例如变量、For Each循环、面向对象编程等。

那么,本书到底是适用于Visual Basic开发人员还是C#开发人员呢?这两类开发人员都可以阅读本书!如果示例代码的区别比较大,本书就会提供VB和C#两个版本的代码(VB版本的代码可从本书支持站点免费下载)。此时,为了简洁起见,会省略C#示例中的HTML标记。

0.4  本书内容

本书主要介绍ASP.NET 4.5,详细阐述该版本中包含的每个主要新功能。下面是每章的主要内容:

●  第1章“One ASP.NET”:扩展健康的Web生态系统,这是本书最有趣的章节之一。ASP.NET推出10余年后,已经成为最丰富的Web开发技术之一。本章描述了ASP.NET的未来规划,包括一个新的蓝图:One ASP.NET。

●  第2章“使用ASP.NET进行HTML5和CSS3设计”:Visual Studio 2012比较注重建立基于HTML5和CSS3的Web应用程序。本章将详细介绍如何高效地使用HTML5和CSS3设计ASP.NET应用程序。

●  第3章“ASP.NET Web窗体的结构”:本章介绍ASP.NET应用程序的架构,以及为单个ASP.NET页面提供的结构和架构。本章将描述如何使用Visual Studio 2012构建ASP.NET应用程序,讨论ASP.NET中的文件夹和文件,论述编译代码的方式以及如何执行跨页的传送过程。本章最后列出处理Visual Studio 2012中的类的简单方法。

●  第4~7章“控件”:将这4章放在一起是因为它们讨论的都是服务器控件或用户控件。这几章首先介绍服务器控件的概念及其在ASP.NET开发中的重要作用。除了讨论服务器控件的架构之外,还将深入探讨服务器控件在ASP.NET开发项目中的作用。第4章“ASP.NET服务器控件和客户端脚本”介绍使用服务器控件的基础知识,第5章“ASP.NET Web服务器控件”介绍最新ASP.NET版本中的控件,第6章“验证服务器控件”描述了一组特殊的服务器控件—— 用于验证的服务器控件。使用这些控件可以创建从初级到高级的表单验证。第7章“用户控件和服务器控件”描述了如何创建自己的服务器控件,以及如何在应用程序中使用它们。

●  第8~13章“数据访问”:这部分讨论数据访问。目前几乎所有的Web应用程序都至少与一种类型的数据源交互,这些章节讨论了从关系数据到JSON的所有数据访问。第8章“数据绑定”介绍一些在把数据发布给控件之前支持编程处理数据的底层功能。第9章“模型绑定”介绍绑定的基础知识,并将模型绑定应用于Web窗体。第10章“使用LINQ查询”介绍LINQ,以及如何在Web应用程序中高效地使用这个新功能。第11章“Entity Framework”讨论如何把对象从数据库映射到代码中。使用Visual Studio 2012可以可视化地设计实体数据模型。第12章“ASP.NET动态数据”描述动态数据如何快速、方便地从数据库中建立报表和数据输入应用程序。第13章“使用服务”指出了传统ASMX Web服务和新型Web API之前的区别。

●  第14章“提供程序模型概述”:ASP.NET内置的许多系统大大方便了开发人员的工作,显著提高了他们的效率。这些系统以“提供程序模型”为基础,提供程序模型是可扩展的。本章将概述提供程序模型,及其在ASP.NET 4.5中的用法。

●  第15章“扩展提供程序模型”:在介绍提供程序模型后,本章将探讨扩展ASP.NET 4.5中提供程序模型的方式,并回顾提供程序模型的几个扩展示例。

●  第16章“使用母版页”:母版页是ASP.NET技术中的一项强大功能,提供了创建模板页面的方式,该模板页面能用于整个应用程序,而不是单个页面。本章介绍这些模板的创建方式,以及如何把它们应用于ASP.NET应用程序中的内容页面。

●  第17章“站点导航”:显然,许多开发人员都不是简单地开发单个页面,而是创建应用程序。因此,他们需要的是能贯穿整个应用程序功能处理的机制,而不是只具有页面处理功能的机制。ASP.NET 4.5提供的一项应用程序功能就是站点导航系统,本章就介绍这个系统。底层的导航系统允许通过XML文件定义应用程序的导航结构,该系统引入了一整套全新的导航服务器控件来处理XML文件中的数据。

●  第18章“个性化”:开发人员总是在寻找存储与终端用户相关信息的方式。在存储了这些信息之后,这种个性化数据就可以用于用户以后的访问,或者用于获取同一应用程序中的其他页面。ASP.NET小组开发了一种存储这些信息的方式—— ASP.NET个性化系统。该系统的最大优点是,可以在web.config文件中配置系统的所有操作。

●  第19章“成员资格和角色管理”:本章介绍成员资格和角色管理系统,该系统用于简化向ASP.NET应用程序添加身份验证和授权的过程。这两个系统是可扩展的,使以前较复杂的身份验证和授权方式永远成为历史。本章主要讨论使用web.config文件控制这些系统的应用方式,以及使用底层系统的新服务器控件。

●  第20章“安全性”:本章讨论ASP.NET 4.5中除了成员资格和角色管理功能之外的安全性,深入研究ASP.NET技术中固有的身份验证和授权机制,以及HTTP访问类型和模拟。

●  第21章“状态管理”:ASP.NET是一种基于请求/响应的技术,因此状态管理和请求、响应的性能非常重要。本章介绍在ASP.NET开发领域中这两个相互独立并且都非常重要的主题。

●  第22章“高速缓存”:ASP.NET的本质是请求/响应,因此服务器上的高速缓存(存储以前生成的结果、图像和页面)对于ASP.NET应用程序的性能来说非常重要。本章介绍ASP.NET提供的一些高级高速缓存功能,包括ASP.NET 4.5中的SQL高速缓存禁用功能。本章还将介绍对象高速缓存以及对象高速缓存的可扩展性。

●  第23~27章“客户端开发”:这5章讨论最热门的技术领域—— 移动技术。消费者和商家都希望能进行实时的数据传递,设计流畅的应用程序可以在移动电话、平板电脑和功能全面的PC上运行。第23章“ASP.NET AJAX”介绍如何使用AJAX建立应用程序。第24章“AJAX控件工具集”回顾一系列可用于AJAX技术的控件。第25章“jQuery”概述JavaScript库jQuery。第26章“实时通信”比较提供传统实时通信的方式和使用HTML5 Web套接字或SignalR的现代方式,后者包含一套混合解决方案。第27章“开发移动网站”专门讨论更新客户端的方法,以提供更好的可移式客户端支持。

●  第28~33章“应用程序的配置和部署”。现在,读者应牢固地掌握了创建ASP.NET应用程序的技巧。这6章重点讨论应用程序的配置和优化,最后将部署应用程序。第28章“配置”讲述如何使用各种配置文件修改ASP.NET的功能和操作方式。第29章“调试和错误处理技术”描述如何在应用程序中正确构建结构化错误处理机制,还将说明如何使用各种调试技术查找应用程序可能包含的错误。第30章“模块和处理程序”介绍ASP.NET处理HTTP请求的两种方法—— HttpModule和HttpHandler。这两种方法都提供了对ASP.NET底层处理过程的独特访问级别。第31章“异步通信”讨论了从客户端到服务器上某方法的单向通信,以及从客户端到宿主服务的单向通信。第32章“国际化应用程序的建立”介绍构建国际化的Web应用程序时应考虑的一些重要事项。第33章“打包和部署ASP.NET应用程序”进一步介绍构建过程,说明如何打包ASP.NET应用程序以便于部署。

●  第34章“ASP.NET MVC”:ASP.NET MVC使许多开发社区兴奋不已。ASP.NET MVC提供了使用MVC(Model-View-Controller,模型-视图-控制器)模式创建ASP.NET应用程序的方法,许多开发人员都对该模式充满期待。ASP.NET MVC为应用程序提供了可测试性、灵活性和可维护性。注意,ASP.NET MVC并不是人们熟知和喜欢的ASP.NET架构的替代物,而是构建ASP.NET应用程序的另一种方式。

●  第35章“ASP.NET Web Pages和Razor”:ASP.NET Web Pages是一项较新的技术,允许开发人员使用Razor语法建立交互式的Web应用程序。本章概述如何使用Microsoft WebMatrix建立Web Pages应用程序,还列出了一些较流行的帮助器,它们使用Razor语法显示有效的HTML和CSS。

●  附录A“迁移ASP.NET旧项目”:在一些情况下,要从头开始构建ASP.NET 4.5应用程序—— 新建所有的内容。但在许多情况下,并不需要这样做,而是需要迁移使用.NET Framework以前版本构建的ASP.NET应用程序,使它们能在.NET Framework 4.5上运行。

●  附录B“COM集成”:肯定有一些组件是用以前的技术创建的,且不希望重建它们,但希望把它们集成到新的ASP.NET应用程序中。此时,使用.NET Framework可以相当简单地把以前的COM组件集成到应用程序中。本附录还介绍如何建立.NET组件,而不是采用以前COM组件的体系结构。

●  附录C“ASP.NET终极工具”:本附录介绍ASP.NET开发人员可以使用的工具,其中有许多工具有助于加速开发过程。在许多情况下,还可以使读者成为更优秀的开发人员。

●  附录D“管理”:ASP.NET小组除了让开发人员在创建ASP.NET应用程序时更轻松、效率更高之外,还花费了大量的精力来简化应用程序的管理。过去,使用ASP.NET 1.0/1.1管理ASP.NET应用程序时,必须修改XML配置文件中的值。本附录将概述这个版本中的GUI工具,利用它们可以方便、高效地管理Web应用程序。

●  附录E“动态类型和语言”:随着 ASP.NET 4.5的发布,现在可以使用IronRuby和IronPython来创建应用程序。本附录简要介绍在创建Web应用程序的过程中应如何使用动态语言。

●  附录F“ASP.NET联机资源”:本附录列出了一些有价值的联机资源,便于读者进一步理解ASP.NET。

●  附录G“使用NuGet扩展Visual Studio”:VS 2012使用NuGet的Microsoft版本Package Manager提供了一个可扩展的模型。NuGet允许开发人员创建可发布的包来共享文件、文件夹和库,该包在公共种子或私有种子中可用。

0.5  源代码

在读者学习本书中的示例时,可以手动输入所有的代码,也可以使用本书附带的源代码文件。本书使用的所有源代码都可以从本书合作站点http://www.wrox.com/或www.tupwk.com.cn/ downpage上下载。登录到站点http://www.wrox.com/,使用Search工具或使用书名列表就可以找到本书。接着单击Download Code链接,就可以获得所有的源代码。既可以选择下载一个大的包含本书所有代码的ZIP文件,也可以只下载某个章节中的代码。

在下载代码后,只需用解压缩软件对其进行解压缩即可。另外,也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书和其他Wrox图书的所有代码。记住,可以使用书中列出的程序清单的编号容易地找到所要寻找的代码,如“程序清单0-1”。

当为大多数可下载的源代码文件命名时,我们会使用这些清单中的数值。对于那些很少的没有用它自己的清单数值命名的程序清单,它们都与文件名匹配,所以很容易就可以在下载的源代码文件中找到它们。另外,还可以在www.wrox.com/go/SQLServer2012DataSets上下载本书使用的AdventureWorks和NorthWind数据库。

0.6  勘误表

尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的。如果你在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫。当然,这还有助于提供更高质量的信息。

要在网站上找到本书英文版的勘误表,可以登录http://www.wrox.com,通过Search工具或书名列表查找本书,然后在本书的细目页面上,单击Book Errata链接。在这个页面上可以查看到Wrox编辑已提交和粘贴的所有勘误项。完整的图书列表还包括每本书的勘误表,网址是www.wrox.com/misc-pages/booklist.shtml。

如果你发现的错误在我们的勘误表里还没有出现的话,请登录www.wrox.com/contact/ techsupport.shtml并完成那里的表格,把你发现的错误发送给我们。我们会检查你的反馈信息,如果正确,我们将在本书的勘误页面张贴该错误信息,并在本书的后续版本中加以修订。

0.7  p2p. wrox.com 

要与作者和同行讨论,请加入p2p.wrox.com上的P2P论坛。这是个基于Web的系统,便于你张贴与Wrox图书相关的消息和相关技术,与其他读者和技术用户交流心得。该论坛提供了订阅功能,当论坛上有新的消息时,它可以给你传送感兴趣的论题。Wrox作者、编辑和其他业界专家和读者都会到这个论坛上来探讨问题。

在http://p2p.wrox.com上,有许多不同的论坛,它们不仅有助于阅读本书,还有助于开发自己的应用程序。要加入论坛,可以遵循下面的步骤:

(1) 进入p2p.wrox.com,单击Register链接。

(2) 阅读使用协议,并单击Agree按钮。

(3) 填写加入该论坛所需要的信息和自己希望提供的其他可选信息,单击Submit按钮。

你会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。

加入论坛后,就可以张贴新消息,响应其他用户张贴的消息。可以随时在Web上阅读消息。如果要让该网站给自己发送特定论坛中的消息,可以单击论坛列表中该论坛名旁边的Subscribe to this Forum图标。

要想了解更多的有关论坛软件的工作情况,以及P2P和Wrox图书的许多常见问题的解答,就一定要阅读FAQ,只需在任意P2P页面上单击FAQ链接即可。

目录

目    录

 

第Ⅰ部分  ASP.NET基础

第1章  One ASP.NET 3

1.1  One ASP.NET简介 3

1.1.1  ASP.NET的演变史 4

1.1.2  Web的演化史 5

1.2  简化复杂的生态系统 6

1.2.1  Web生态系统 7

1.2.2  起步是很简单的 8

1.2.3  整合生态系统是很简单的 8

1.2.4  真实示例 10

1.3  如何从One ASP.NET中获益 13

1.3.1  ASP.NET使起步很简单 13

1.3.2  ASP.NET支持Web

生态系统 13

1.3.3  ASP.NET更容易查找、添加、

更新站点的各个模块 14

1.3.4  ASP.NET帮助把一个框架的

概念应用于另一个框架 14

1.3.5  ASP.NET与Web的

发展一样快 14

1.4  本章小结 15

第2章  使用ASP.NET进行HTML5和

CSS3设计 17

2.1  警告 18

2.2  HTML5概述 18

2.2.1  HTML5中的新元素、特性

和值 19

2.2.2  使用新的HTML5标记 21

2.2.3  HTML5中新的API 23

2.3  CSS3概述 24

2.3.1  创建样式表 24

2.3.2  CSS规则 27

2.3.3  CSS继承 36

2.3.4  元素的布局和定位 37

2.3.5  CSS3中的新功能 43

2.3.6  HTML和CSS的兼容 47

2.4  在Visual Studio中使用

HTML和CSS 48

2.4.1  在Visual Studio中使用CSS 48

2.4.2  指定ASP.NET控件的样式 51

2.4.3  VS 2012中对HTML和

CSS的改进 53

2.4.4  Page Inspector 54

2.5  本章小结 55

第3章  ASP.NET Web窗体的结构 57

3.1  应用程序的位置选项 57

3.1.1  使用文件系统(IIS Express) 58

3.1.2  使用IIS 59

3.1.3  使用FTP 60

3.2  ASP.NET页面的结构选项 61

3.2.1  内联编码 61

3.2.2  隐藏代码模型 63

3.3  ASP.NET 4.5的Page指令 65

3.3.1  Page指令 66

3.3.2  Master指令 68

3.3.3  Control指令 69

3.3.4  Import指令 69

3.3.5  Implements指令 72

3.3.6  Register指令 72

3.3.7  Assembly指令 73

3.3.8  PreviousPageType指令 73

3.3.9  MasterType指令 74

3.3.10  OutputCache指令 74

3.3.11  Reference指令 75

3.4  ASP.NET的页面事件 75

3.5  处理回送 76

3.6  跨页面传送 77

3.7  ASP.NET应用程序文件夹 80

3.7.1  App_Code文件夹 80

3.7.2  App_Data文件夹 84

3.7.3  App_GlobalResources

文件夹 84

3.7.4  App_LocalResources

文件夹 84

3.7.5  App_WebReferences

文件夹 84

3.7.6  App_Browsers文件夹 85

3.8  编译 85

3.9  Build Provider 88

3.9.1  使用内置的Build Provider 90

3.9.2  使用自己的Build Provider 90

3.10  Global.asax 94

3.11  通过Visual Studio 2012

使用类 96

3.12  本章小结 99

第Ⅱ部分  控    件

第4章  ASP.NET服务器控件和

客户端脚本 103

4.1  ASP.NET服务器控件 103

4.1.1  服务器控件的类型 104

4.1.2  使用服务器控件构建页面 105

4.1.3  处理服务器控件的事件 106

4.2  给服务器控件应用样式 107

4.3  CSS在ASP.NET 4.5中的

改变 109

4.4  HTML服务器控件 109

4.4.1  HtmlControl基类 110

4.4.2  HtmlContainerControl类 111

4.4.3  所有的HTML类 111

4.4.4  使用HtmlGenericControl

类 113

4.5  识别ASP.NET服务器控件 114

4.6  通过JavaScript处理页面和

服务器控件 116

4.6.1  使用Page.ClientScript.

RegisterClientScriptBlock 117

4.6.2  使用Page.ClientScript.

RegisterStartupScript 118

4.6.3  使用Page.ClientScript.

RegisterClientScriptInclude 120

4.7  本章小结 120

第5章  ASP.NET Web服务器控件 121

5.1  Web服务器控件概述 121

5.2  Label服务器控件 122

5.3  Literal服务器控件 124

5.4  TextBox服务器控件 125

5.4.1  使用Focus()方法 125

5.4.2  使用AutoPostBack 126

5.4.3  使用AutoCompleteType 127

5.5  Button服务器控件 127

5.5.1  CausesValidation属性 128

5.5.2  CommandName属性 128

5.5.3  使用客户端JavaScript的

按钮 129

5.6  LinkButton服务器控件 130

5.7  ImageButton服务器控件 131

5.8  HyperLink服务器控件 131

5.9  DropDownList服务器控件 132

5.10  从集合中可视化地删除

数据项 134

5.11  ListBox服务器控件 135

5.11.1  允许用户选择多项 136

5.11.2  使用ListBox控件的

例子 136

5.11.3  给集合添加项 137

5.12  CheckBox服务器控件 138

5.12.1  如何确定复选框是否被

选中 139

5.12.2  给复选框赋值 139

5.12.3  排列复选框中的文本 140

5.13  CheckBoxList服务器控件 140

5.14  RadioButton服务器控件 142

5.15  RadioButtonList服务器控件 144

5.16  Image服务器控件 145

5.17  Table服务器控件 146

5.18  Calendar服务器控件 148

5.18.1  从Calendar控件中选择

日期 149

5.18.2  从Calendar控件中选择

要输出的日期格式 150

5.18.3  选择日期、星期或月份 150

5.18.4  使用日期范围 151

5.18.5  修改日历的样式和

操作方式 152

5.19  AdRotator服务器控件 155

5.20  Xml服务器控件 157

5.21  Panel服务器控件 157

5.22  PlaceHolder服务器控件 159

5.23  BulletedList服务器控件 160

5.24  HiddenField服务器控件 165

5.25  FileUpload服务器控件 166

5.25.1  使用FileUpload控件上传

文件 166

5.25.2  给上传文件指定正确的

ASP.NET权限 168

5.25.3  理解文件的大小限制 169

5.25.4  从同一个页面上传多个

文件 171

5.25.5  把上传的文件放在Stream

对象中 173

5.25.6  把文件内容从Stream对象

移到Byte数组中 173

5.26  MultiView和View服务器

控件 174

5.27  Wizard服务器控件 177

5.27.1  定制边栏导航 178

5.27.2  AllowReturn属性 179

5.27.3  使用StepType属性 179

5.27.4  给Wizard控件添加标题 180

5.27.5  使用向导的导航系统 181

5.27.6  使用Wizard控件的

事件 181

5.27.7  使用Wizard控件显示

窗体元素 183

5.28  ImageMap服务器控件 186

5.29  本章小结 188

第6章  验证服务器控件 189

6.1  有效性验证 189

6.2  客户端和服务器端的验证 190

6.3  ASP.NET验证服务器控件 191

6.3.1  验证原因 192

6.3.2  ASP.NET 4.5中的

隐含验证 192

6.3.3  RequiredFieldValidator

服务器控件 195

6.3.4  CompareValidator服务器

控件 199

6.3.5  RangeValidator服务器

控件 202

6.3.6  RegularExpressionValidator

服务器控件 205

6.3.7  CustomValidator服务器

控件 206

6.3.8  ValidationSummary服务器

控件 210

6.4  关闭客户端验证功能 213

6.5  为错误通知使用图像和声音 214

6.6  使用验证组 215

6.7  本章小结 218

第7章  用户控件和服务器控件 219

7.1  用户控件 219

7.1.1  创建用户控件 220

7.1.2  与用户控件交互 222

7.1.3  动态加载用户控件 222

7.2  服务器控件 226

7.2.1  Server Control项目 226

7.2.2  控件的特性 230

7.2.3  控件的显示 231

7.2.4  添加标记特性 234

7.2.5  关于控件ID 235

7.2.6  给HTML设置样式 236

7.2.7  添加客户端功能 238

7.2.8  浏览器功能 244

7.2.9  使用ViewState 246

7.2.10  引发回送事件 249

7.2.11  处理回送数据 251

7.2.12  复合控件 253

7.2.13  模板化控件 254

7.2.14  在设计期间创建控件 257

7.3  本章小结 268

第Ⅲ部分  数 据 访 问

第8章  数据绑定 271

8.1  数据源控件 271

8.1.1  SqlDataSource控件 273

8.1.2  AccessDataSource控件 278

8.1.3  LinqDataSource控件 278

8.1.4  EntityDataSource 控件 278

8.1.5  给复杂的过滤使用

QueryExtender 280

8.1.6  XmlDataSource控件 281

8.1.7  ObjectDataSource控件 282

8.1.8  SiteMapDataSource控件 283

8.2  数据源控件的高速缓存 284

8.3  数据绑定控件 284

8.3.1  GridView控件 284

8.3.2  编辑GridView中的

数据行 293

8.3.3  删除GridView数据 298

8.3.4  DetailsView控件 300

8.3.5  使用DetailsView插入、更新

和删除数据 302

8.3.6  ListView控件 303

8.3.7  FormView控件 309

8.4  其他数据绑定控件 312

8.4.1  TreeView控件 312

8.4.2  Menu控件 313

8.4.3  Chart控件 313

8.5  内联数据绑定语法 316

8.5.1  数据绑定语法 317

8.5.2  XML数据绑定 318

8.6  表达式和表达式生成器 318

8.7  本章小结 321

第9章  模型绑定 323

9.1  模型绑定 323

9.1.1  选择数据 324

9.1.2  分页 324

9.1.3  过滤 325

9.1.4  使用值提供程序 325

9.1.5  插入数据 326

9.1.6  更新数据 327

9.2  使用强类型化的控件 329

9.3  扩展模型绑定 330

9.3.1  定制的值提供程序 330

9.3.2  定制的模型绑定器 331

9.3.3  定制的ModelDataSource 332

9.4  本章小结 334

第10章  使用LINQ查询 335

10.1  LINQ to Objects 336

10.1.1  传统的查询方法 336

10.1.2  使用LINQ替代传统的

查询 338

10.1.3  使用LINQ分组数据 345

10.1.4  使用其他LINQ运算符 345

10.1.5  建立LINQ连接 346

10.1.6  使用LINQ分页数据 347

10.2  LINQ to XML 347

10.2.1  一个简单的LINQ to 

XML示例 348

10.2.2  连接XML数据 350

10.3  LINQ to SQL 351

10.3.1  使用O/R映射器 351

10.3.2  访问和查询数据 353

10.3.3  使用其他SQL查询方法 356

10.3.4  通过LINQ插入、更新和

删除查询 358

10.4  LINQ to Entities 361

10.4.1  创建Entity Framework

数据模型 362

10.4.2  访问数据 363

10.4.3  编写LINQ查询 363

10.5  本章小结 365

第11章  Entity Framework 367

11.1  能否使用同一种语言 368

11.1.1  开发工作流选项 369

11.1.2  实体数据模型 369

11.2  创建第一个实体数据模型 370

11.2.1  使用EDM向导 371

11.2.2  使用Entity Framework

设计器 373

11.2.3  使用EDM建立ASP.NET 

Web页面 374

11.3  理解关系 376

11.3.1  一对一和一对多关系 376

11.3.2  多对一和多对多关系 379

11.4  在EDM中使用继承功能 381

11.5  使用EntityDataSource控件 384

11.5.1  创建基本页面 384

11.5.2  配置数据源控件 385

11.6  Entity Framework Code First 387

11.6.1  创建Code First模型 387

11.6.2  约定-配置 390

11.6.3  Code First中的关系 391

11.6.4  Code First Migrations 392

11.7  本章小结 394

第12章  ASP.NET Dynamic Data 395

12.1  Dynamic Data功能 395

12.1.1  默认应用程序中创建的

核心文件 395

12.1.2  应用程序特性 396

12.1.3  运行应用程序 397

12.1.4  运行应用程序的结果 397

12.1.5  向已有页面中添加动态

数据 400

12.2  理解模型绑定 401

12.2.1  特性驱动的UI 401

12.2.2  特性驱动的验证 403

12.3  本章小结 404

第13章  使用服务 405

13.1  不同系统之间的通信 405

13.2  建立一个简单的XML Web

服务 407

13.2.1  WebService页面指令 408

13.2.2  Web服务的基类文件 409

13.2.3  把定制的DataSet显示为

SOAP 409

13.2.4  XML Web服务接口 411

13.3  使用简单的XML Web服务 413

13.3.1  添加Web引用 413

13.3.2  在客户端应用程序中

调用Web服务 415

13.4  重载WebMethod 417

13.5  高速缓存Web服务的响应 420

13.6  使用SOAP报头 421

13.6.1  使用SOAP报头建立

Web服务 421

13.6.2  通过SOAP报头使用

Web服务 422

13.6.3  使用SOAP 1.2请求Web

服务 424

13.7  异步使用Web服务 425

13.8  WCF 427

13.8.1  WCF概述 427

13.8.2  建立WCF服务 428

13.8.3  建立WCF使用者 433

13.8.4  添加服务引用 434

13.8.5  使用数据协定 436

13.8.6  定义名称空间 440

13.8.7  使用WCF数据服务 440

13.8.8  创建第一个服务 441

13.8.9  查询接口 447

13.8.10  在ASP.NET中使用

WCF数据服务 458

13.9  ASP.NET Web API 460

13.9.1  建立第一个Web API

项目 461

13.9.2  理解Web API路由 464

13.9.3  使用Web API 465

13.10  本章小结 468

第Ⅳ部分  提 供 程 序

第14章  提供程序模型概述 471

14.1  提供程序概述 472

14.2  ASP.NET 4.5中的提供

程序模型 473

14.2.1  设置提供程序以使用

SQL Server 2005、2008或

2012 474

14.2.2  成员资格提供程序 479

14.2.3  角色提供程序 483

14.2.4  个性化提供程序 486

14.2.5  站点地图提供程序 488

14.2.6  会话状态提供程序 489

14.2.7  Web事件提供程序 491

14.2.8  提供程序的配置 498

14.3  本章小结 500

第15章  扩展提供程序模型 501

15.1  提供程序是较大体系结构中

的一层 501

15.2  通过基于特性的编程修改

提供程序的行为 502

15.2.1  通过SqlMembership-

Provider建立简单的

密码结构 502

15.2.2  通过SqlMembership-

Provider建立强类型的

密码结构 505

15.3  ProviderBase类 506

15.4  建立自己的提供程序 508

15.4.1  创建CustomProviders

应用程序 508

15.4.2  构造需要的类架构 509

15.4.3  创建XML用户数据

存储 512

15.4.4  在web.config文件中

定义提供程序实例 512

15.4.5  不实现MembershipProvider

类的方法和属性 513

15.4.6  实现MembershipProvider

类的方法和属性 514

15.4.7  使用XmlMembership-

Provider进行用户登录 519

15.5  扩展预定义的提供程序 520

15.5.1  用新的LimitedSql-

RoleProvider提供程序

限制角色功能 521

15.5.2  使用新的

LimitedSqlRoleProvider

提供程序 523

15.6  本章小结 526

第Ⅴ部分  ASP.NET特性

第16章  使用母版页 529

16.1  需要母版页的原因 529

16.2  母版页的基础知识 531

16.3  编写母版页 532

16.4  编写内容页面 534

16.4.1  混合页面类型和语言 538

16.4.2  指定要使用的母版页 539

16.4.3  将母版页应用于

页面子集 540

16.4.4  使用页面标题 540

16.4.5  使用母版页中的控件和

属性 540

16.5  在母版页中指定默认内容 545

16.6  以编程方式将母版页赋予

内容页面 547

16.7  母版页的嵌套 547

16.8  浏览器特定的母版页 551

16.9  事件的触发顺序 552

16.10  高速缓存母版页 553

16.11  ASP.NET AJAX和母版页 554

16.12  本章小结 556

第17章  站点导航 557

17.1  基于XML的站点地图 557

17.2  SiteMapPath服务器控件 559

17.2.1  PathSeparator属性 561

17.2.2  PathDirection 属性 563

17.2.3  ParentLevelsDisplayed

属性 563

17.2.4  ShowToolTips属性 564

17.2.5  SiteMapPath控件的

子元素 564

17.3  TreeView服务器控件 565

17.3.1  标识TreeView控件的

内置样式 568

17.3.2  研究TreeView控件的

各个部分 569

17.3.3  将TreeView控件绑定到

XML文件 570

17.3.4  在TreeView中选择多个

选项 572

17.3.5  在TreeView控件中指定

定制的图标 575

17.3.6  指定用于连接节点的线 576

17.3.7  以编程方式使用

TreeView控件 577

17.4  Menu服务器控件 582

17.4.1  对Menu控件应用不同的

样式 583

17.4.2  Menu事件 587

17.4.3  把Menu控件绑定到

XML文件 588

17.5  SiteMap数据提供程序 589

17.5.1  ShowStartingNode属性 589

17.5.2  StartFromCurrentNode

属性 590

17.5.3  StartingNodeOffset属性 591

17.5.4  StartingNodeUrl属性 592

17.6  SiteMap API 592

17.7  URL映射 594

17.8  站点地图的本地化 595

17.8.1  为本地化构建Web.sitemap

文件 595

17.8.2  修改web.config文件 596

17.8.3  创建程序集资源(.resx)

文件 596

17.8.4  测试结果 597

17.9  安全补偿 598

17.9.1  启动管理员的角色管理

功能 598

17.9.2  建立管理员的配置部分 600

17.9.3  启用安全补偿功能 601

17.10  嵌套站点地图文件 602

17.11  本章小结 604

第18章  个性化 605

18.1  个性化模型 605

18.2  创建个性化属性 606

18.2.1  添加简单的个性化属性 607

18.2.2  使用个性化属性 607

18.2.3  添加一组个性化属性 610

18.2.4  使用分组的个性化属性 611

18.2.5  为个性化属性定义类型 611

18.2.6  使用定制的类型 612

18.2.7  提供默认值 613

18.2.8  把个性化属性指定为

只读 614

18.3  匿名个性化 614

18.3.1  支持终端用户的

匿名身份 614

18.3.2  使用匿名身份识别事件 617

18.3.3  个性化属性的匿名选项 617

18.3.4  有关匿名用户配置信息

的警告 618

18.4  编程访问个性化功能 618

18.4.1  迁移匿名用户 619

18.4.2  配置信息的个性化 619

18.4.3  确定是否继续自动保存

配置信息 620

18.4.4  在Web Application Projects

中使用配置信息 621

18.5  个性化提供程序 622

18.5.1  使用SQL Server Express 

Edition 622

18.5.2  使用SQL Server 623

18.5.3  使用多个提供程序 625

18.5.4  使用通用提供程序 626

18.6  管理应用程序的配置信息 626

18.6.1  ProfileManager类的

属性 627

18.6.2  ProfileManager类的

方法 627

18.6.3  建立配置信息管理页面 628

18.6.4  研究配置信息管理页面

的代码 630

18.6.5  运行配置信息管理页面 631

18.7  本章小结 631

第19章  成员资格和角色管理 633

19.1  ASP.NET 4.5的身份验证 634

19.1.1  为成员资格建立Web

站点 634

19.1.2  添加用户 637

19.1.3  请求凭据 649

19.1.4  处理验证用户 655

19.1.5  显示在线用户数 657

19.1.6  处理密码 658

19.2  ASP.NET 4.5的授权 662

19.2.1  使用LoginView服务器

控件 662

19.2.2  为角色管理建立Web

站点 664

19.2.3  添加和检索应用程序

角色 667

19.2.4  删除角色 669

19.2.5  给角色添加用户 669

19.2.6  获取某个角色的

所有用户 670

19.2.7  获取包含某个用户的

所有角色 671

19.2.8  从角色中删除用户 672

19.2.9  检查角色中的用户 672

19.2.10  角色的高速缓存方式 673

19.3  使用SimpleMembership 

API 674

19.4  使用Web Site Administration 

Tool 675

19.5  Membership API的

公有方法 675

19.6  Roles API的公有方法 676

19.7  集成OAuth和OpenID

身份验证 677

19.7.1  使用OpenID 677

19.7.2 使用OAuth 681

19.8  本章小结 685

第20章  安全性 687

20.1  应用身份验证措施 688

20.1.1  <authentication>节点 688

20.1.2  基于Windows的

身份验证 689

20.1.3  基于表单的身份验证 696

20.2  验证特定的文件和文件夹 703

20.3  以编程方式授权 704

20.3.1  使用User.Identity属性 705

20.3.2  使用IsInRole方法 706

20.3.3  使用WindowsIdentity

显示更多信息 706

20.4  身份和模拟 708

20.5  通过IIS进行保护 710

20.5.1  使用文件扩展名 710

20.5.2  使用IIS 7.x/8 Manager 712

20.5.3  使用ASP.NET MMC

管理单元 713

20.6  本章小结 714

第Ⅵ部分  应用程序状态

第21章  状态管理 717

21.1  如何选择会话状态 717

21.2  理解ASP.NET中的Session

对象 719

21.2.1  会话和事件模型 720

21.2.2  配置会话状态的管理 721

21.2.3  进程中的会话状态 721

21.2.4  进程外的会话状态 727

21.2.5  SQL支持的会话状态 732

21.2.6  使用其他提供程序扩展

会话状态 734

21.2.7  无cookie的会话状态 735

21.2.8  选择维护状态的

正确方式 736

21.3  Application对象 737

21.4  查询字符串 737

21.5  cookie 738

21.6  回送和跨页面回送 738

21.7  隐藏字段、ViewState和

ControlState 740

21.8  为短时间状态存储应用

HttpContext.Current.Items 743

21.9  本章小结 744

第22章  高速缓存 745

22.1  高速缓存 745

22.1.1  输出高速缓存 746

22.1.2  部分页面(UserControl)的

高速缓存 749

22.1.3  Post-Cache Substitution 750

22.1.4  HttpCachePolicy和

客户端高速缓存 752

22.2  使用编程方式进行高速缓存 753

22.2.1  使用Cache对象高速缓存

数据 754

22.2.2  控制ASP.NET高速

缓存 754

22.2.3  高速缓存依赖性 755

22.2.4  .NET 4.x中新的对象高速

缓存选项 758

22.3  使用SQL Server高速缓存

依赖性 761

22.3.1  使数据库支持SQL Server

高速缓存禁用功能 762

22.3.2  使表支持SQL Server

高速缓存禁用功能 762

22.3.3  对SQL Server的影响 763

22.3.4  查看支持SQL Server高速

缓存禁用功能的表 764

22.3.5  使表不支持SQL Server

高速缓存禁用功能 764

22.3.6  使数据库不支持SQL Server

高速缓存禁用功能 764

22.3.7  SQL Server高速缓存禁用

功能 765

22.4  配置ASP.NET应用程序 766

22.5  测试SQL Server高速缓存

禁用功能 767

22.5.1  给页面添加多个表 769

22.5.2  给SQL Server高速缓存

依赖性和Request对象

建立关联 770

22.5.3  给SQL Server高速缓存

依赖性和Cache对象

建立关联 770

22.6  本章小结 773

第Ⅶ部分  客户端开发

第23章  ASP.NET AJAX 777

23.1  理解对AJAX的需求 777

23.1.1  AJAX出现之前的

请求/响应过程 777

23.1.2  AJAX改变了请求/

响应过程 778

23.2  ASP.NET AJAX和Visual 

Studio 2012 780

23.2.1  客户端技术 781

23.2.2  服务器端技术 781

23.2.3  使用ASP.NET AJAX

进行开发 782

23.3  创建ASP.NET AJAX应用

程序 782

23.3.1  建立没有使用AJAX的

简单ASP.NET页面 784

23.3.2  建立使用AJAX的简单

ASP.NET页面 785

23.4  ASP.NET AJAX的服务器

控件 790

23.4.1  ScriptManager控件 791

23.4.2  ScriptManagerProxy

控件 793

23.4.3  Timer控件 794

23.4.4  UpdatePanel控件 795

23.4.5  UpdateProgress控件 799

23.5  使用多个UpdatePanel控件 801

23.6  使用页面历史记录 804

23.7  脚本合并 809

23.8  本章小结 813

第24章  AJAX控件工具集 815

24.1  下载和安装AJAX控件

工具集 816

24.2  ASP.NET AJAX控件 818

24.2.1  AJAX控件工具集的

扩展程序 819

24.2.2  AJAX控件工具集中的

服务器控件 863

24.3  本章小结 873

第25章  jQuery 875

25.1  jQuery简介 876

25.2  选择元素 880

25.3  修改元素 882

25.3.1  修改内容 882

25.3.2  添加和删除元素 884

25.4  事件处理 886

25.5  AJAX 888

25.6  jQuery UI 895

25.7  本章小结 898

第26章  实时通信 899

26.1  传统的实时通信选项 899

26.1.1  使用Comet 900

26.1.2  Polling 901

26.1.3  服务器发送的事件 901

26.1.4  现有方法的缺点 901

26.2  HTML5 WebSockets 902

26.2.1  WebSockets的概念 902

26.2.2  TCP/IP 903

26.2.3  TCP/HTTP 903

26.2.4  WebSockets协议简介 904

26.2.5  WebSockets数据传输 905

26.2.6  WebSockets API 906

26.2.7  ASP.NET 4.5中的

WebSockets 907

26.2.8  使用WebSockets的

优点 910

26.3  SignalR 911

26.3.1  什么是SignalR? 911

26.3.2  ASP.NET中的服务器端

SignalR 912

26.3.3  ASP.NET中的客户端

SignalR 913

26.4  本章小结 914

第27章  开发移动网站 915

27.1  移动Web设计的挑战 916

27.2  响应式设计和适应式设计 916

27.2.1  修改视口 917

27.2.2  使用CSS媒介查询 918

27.3  ASP.NET移动应用程序 920

27.3.1  检测移动浏览器和设备 921

27.3.2  处理移动母版页 921

27.3.3  创建移动Web窗体 923

27.3.4  ASP.NET Web窗体中的

FriendlyURLs 924

27.4  ASP.NET MVC 4 移动

应用程序 925

27.4.1  ASP.NET MVC 4中的

适应式显示功能 925

27.4.2  创建移动专用的视图 928

27.4.3  提供显示模式 929

27.4.4  包含jQuery Mobile和

ViewSwitcher 931

27.4.5  使用Mobile Application

项目模板 934

27.5  测试移动应用程序 934

27.6  本章小结 935

第Ⅷ部分  应用程序的配置与开发

第28章  配置 939

28.1  配置概述 939

28.1.1  服务器配置文件 940

28.1.2  应用程序配置文件 943

28.1.3  应用配置设置 943

28.1.4  检测配置文件发生的

改动 944

28.1.5  配置文件的格式 944

28.2  公共配置设置 945

28.2.1  连接字符串 945

28.2.2  配置会话状态 946

28.2.3  编译配置 950

28.2.4  定制错误 952

28.2.5  身份验证 952

28.2.6  匿名身份 955

28.2.7  授权 956

28.2.8  锁定配置设置 958

28.2.9  ASP.NET页面配置 958

28.2.10  包含文件 960

28.2.11  配置ASP.NET运行时

设置 961

28.2.12  配置ASP.NET工作者

进程 963

28.2.13  存储与应用程序相关的

设置 966

28.2.14  对配置文件编程 966

28.2.15  保护配置设置 970

28.2.16  编辑配置文件 973

28.3  创建定制部分 975

28.3.1  使用NameValueFile-

SectionHandler对象 975

28.3.2  使用Dictionary-

SectionHandler对象 976

28.3.3  使用SingleTag-

SectionHandler对象 977

28.3.4  使用定制的配置处理

程序 977

28.4  使用配置转换 979

28.4.1  添加web.config 转换 979

28.4.2  更新配置转换文件 981

28.5  打包和压缩功能 983

28.5.1  什么是打包和压缩功能 983

28.5.2  启用打包和压缩功能 984

28.6  本章小结 985

第29章  调试和错误处理技术 987

29.1  设计期间的支持 987

29.1.1  语法通知 988

29.1.2  Immediate和Command

窗口 989

29.1.3  任务列表 989

29.2  跟踪 990

29.2.1  System.Diagnostics.Trace和

ASP.NET的Page.Trace 990

29.2.2  页面级的跟踪 991

29.2.3  应用程序的跟踪 991

29.2.4  查看跟踪数据 991

29.2.5  在组件中跟踪 994

29.2.6  跟踪的传送 995

29.2.7  TraceListener 995

29.2.8  诊断选项 999

29.2.9  Web事件 1000

29.3  调试 1001

29.3.1  需要的内容 1002

29.3.2  启动调试会话 1003

29.3.3  有助于调试的工具 1004

29.3.4  使用IntelliTrace执行

历史调试 1007

29.3.5  调试多个线程 1008

29.3.6  客户端的JavaScript

调试 1008

29.3.7  SQL存储过程的调试 1009

29.4  异常和错误处理 1010

29.4.1  处理页面上的异常 1010

29.4.2  处理应用程序异常 1011

29.4.3  HTTP状态码 1011

29.5  用Page Inspector进行调试 1012

29.6  本章小结 1015

第30章  模块和处理程序 1017

30.1  处理HTTP请求 1017

30.1.1  IIS 6和ASP.NET 1017

30.1.2  IIS 7、IIS 8和

ASP.NET 1018

30.1.3  ASP.NET请求处理 1019

30.2  HttpModule 1019

30.3  HttpHandler 1024

30.3.1  一般的处理程序 1024

30.3.2  在IIS中映射文件

扩展名 1028

30.4  本章小结 1029

第31章  异步通信 1031

31.1  异步编程 1031

31.1.1  使用异步方式的原因 1031

31.1.2  编写异步代码的场合 1032

31.1.3  异步简史 1032

31.2  ASP.NET中的异步 1034

31.2.1  线程池 1035

31.2.2  编写异步代码 1036

31.2.3  并行 1039

31.2.4  服务器配置 1040

31.2.5  使用异步模式的缺点 1040

31.3  本章小结 1041

第32章  国际化应用程序的建立 1043

32.1  区域性和地区 1043

32.1.1  了解区域性类型 1044

32.1.2  ASP.NET线程 1045

32.1.3  服务器端的区域性

声明 1046

32.1.4  客户端的区域性声明 1048

32.1.5  翻译值和行为 1049

32.2  ASP.NET 4.5资源文件 1056

32.2.1  使用本地资源 1056

32.2.2  使用全局资源 1061

32.3  本章小结 1064

第33章  打包和部署ASP.NET

应用程序 1065

33.1  部署各个部分 1066

33.2  部署之前的准备步骤 1066

33.3  部署Web应用程序的方法 1067

33.3.1  使用XCopy 1067

33.3.2  使用Copy Web Site

选项 1069

33.3.3  部署预编译的Web

应用程序 1072

33.3.4  创建ASP.NET Web 

Package 1073

33.3.5 发布配置文件详解 1076

33.4  部署Windows Azure Web 

Sites 1082

33.5  本章小结 1084

第Ⅸ部分  其他ASP.NET技术

第34章  ASP.NET MVC 1087

34.1  MVC的定义 1087

34.2  当今Web上的MVC 1088

34.3  MVC和ASP.NET 1089

34.3.1  为方法而不是

文件服务 1089

34.3.2  ASP.NET MVC是

Web Forms 4.5? 1089

34.3.3  为什么不是Web窗体 1090

34.3.4  ASP.NET MVC是完全

不同的 1090

34.3.5  为什么“(ASP.NET>ASP.NET MVC)==True” 1090

34.3.6  约定胜于配置 1092

34.3.7  第三个请求是Charm 1095

34.4  理解路由和URL 1097

34.4.1  路由选择与URL重写

的比较 1097

34.4.2  路由的定义 1098

34.5  控制器 1103

34.5.1  控制器的定义:

IController接口 1103

34.5.2  控制器类和操作 1104

34.5.3  处理参数 1105

34.5.4  处理多个参数 1106

34.6  视图 1106

34.6.1  指定视图 1108

34.6.2 ASP.NET MVC布局 1109

34.6.3  强类型化视图 1112

34.6.4  使用HTML辅助方法 1113

34.6.5  HtmlHelper类和

扩展方法 1113

34.7  本章小结 1114

第35章  ASP.NET Web Pages和

Razor 1115

35.1  ASP.NET Web Pages概述 1116

35.2  使用Razor创建HTML

窗体 1116

35.3  显示数据 1120

35.3.1  验证 1123

35.3.2  使用布局 1125

35.4  使用辅助方法 1127

35.4.1  核心辅助方法 1127

35.4.2  使用辅助方法添加

功能 1130

35.4.3  创建定制的辅助方法 1132

35.5  本章小结 1133

第Ⅹ部分  附    录

附录A  迁移ASP.NET旧项目 1137

附录B  COM集成 1145

附录C  ASP.NET终极工具 1155

附录D  管理 1165

附录E  动态类型与语言 1189

附录F  ASP.NET联机资源 1197

附录G  使用NuGet扩展Visual 

Studio 1201

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个