第一部分 核心概念 2
第1章ASP.NET简介 2
1.1 ASRNET的7大要点 2
1.1.1要点1:ASP.NET是同.NET Framework集成在一起的 2
1.1.2要点2:ASP.NET是编译执行的,而不是解释执行的 3
1.1.3要点3:ASP.NET支持多语言 4
1.1.4要点4:ASP.NET运行在公共语言运行库内 6
1.1.5要点5:ASP.NET是面向对象的 7
1.1.6要点6:ASP.NET支持所有的浏览器 8
1.1.7要点7:ASP.NET易于部署和配置 8
1.2 ASRNET的演变 9
1.2.1 ASP.NET 1.0和ASP.NET1.1 9
1.2.2 ASP.NET 2.0 9
1.2.3 ASP.NET 3.5 10
1.2.4 ASP.NET 4 12
1.2.5 Silverlight 14
1.3总结 15
第2章Visual Studio 16
2.1 Visual Studio 16
2.1.1网站和Web项目 17
2.1.2创建无项目文件的网站 18
2.1.3设计网页 21
2.2 Visual StudiolDE 26
2.2.1解决方案资源管理器 28
2.2.2文档窗口 29
2.2.3工具箱 29
2.2.4错误列表和任务列表 30
2.2.5服务器资源管理器 31
2.3代码编辑器 32
2.3.1添加程序集引用 33
2.3.2智能感知和大纲显示 35
2.3.3 Visual Studio 2010改进 37
2.4编码模型 42
2.4.1代码隐藏文件如何与页面连接 44
2.4.2控件标签如何与页面变量连接 44
2.4.3事件如何与事件处理程序连接 46
2.5 Web项目 47
2.5.1基于项目的开发 47
2.5.2创建Web项目 48
2.5.3迁移旧版Visual Studio创建的网站 49
2.6 Visual Studio调试 51
2.6.1单步调试 52
2.6.2变量监视 54
2.6.3高级断点 55
2.7 Web Development Helper 56
2.8总结 57
第3章Web窗体 58
3.1页面处理 58
3.1.1 HTML表单 59
3.1.2动态用户界面 60
3.1.3 ASP.NET事件模型 61
3.1.4自动回送 62
3.1.5视图状态 63
3.1.6 XHTML兼容性 66
3.1.7客户端控件ID 71
3.2 Web窗体处理阶段 73
3.2.1页面框架初始化 74
3.2.2用户代码初始化 74
3.2.3验证 74
3.2.4事件处理 75
3.2.5自动数据绑定 75
3.2.6清除 76
3.2.7页面流示例 76
3.3作为控件容器的页面 78
3.3.1显示控件树 78
3.3.2页头 82
3.3.3动态控件的创建 82
3.4 Page类 84
3.4.1 Session、 Application和Cache 84
3.4.2 Request 85
3.4.3 Response 86
3.4.4 Server 88
3.4.5 User 90
3.4.6Trace 91
3.4.7访问其他类中的HTTP上下文 96
3.5总结 96
第4章 服务器控件 97
4.1服务器控件的类型 97
4.2 HTML服务器控件 99
4.2.1 HtmlControl类 100
4.2.2 HtmlContainerControl类 100
4.2.3HtmlInputControl类 100
4.2.4 HTML服务器控件类 101
4.2.5设置Style特性和其他属性 102
4.2.6通过编程创建服务器控件 103
4.2.7处理服务器端事件 104
4.3 Web控件 107
4.3.1 WebControl基类 107
4.3.2基本的Web控件类 108
4.3.3单位 109
4.3.4枚举 110
4.3.5颜色 110
4.3.6字体 111
4.3.7焦点 112
4.3.8默认按钮 113
4.3.9可滚动面板 114
4.3.10处理Web控件事件 114
4.4 List控件 116
4.4.1 Selectable列表控件 117
4.4.2 BulletedList控件 120
4.5输入验证控件 121
4.5.1验证控件 121
4.5.2验证流程 122
4.5.3 BaseValidator类 122
4.5.4 RequiredFieldValidator控件 124
4.5.5 RangeValidator控件 124
4.5.6 CompareValidator控件 125
4.5.7 RegularExpressionValidator控件 125
4.5.8 CustomValidator控件 127
4.5.9 ValidationSummary控件 128
4.5.10通过编程使用验证器 129
4.5.11验证组 130
4.6富控件 132
4.6.1 AdRotator控件 132
4.6.2 Calendar控件 134
4.7总结 136
第5章ASRNET应用程序 137
5.1剖析ASPNET应用程序 137
5.1.1应用程序域 137
5.1.2应用程序生命周期 138
5.1.3应用程序更新 139
5.1.4应用程序目录结构 139
5.2 global.asax应用程序文件 140
5.2.1应用程序事件 141
5.2.2演示应用程序事件 143
5.3 ASP.NET配置 144
5.3.1 machine.config文件 144
5.3.2 web.config文件 147
5.3.3 <system.web>设置 150
5.3.4 <system.webServer> 150
5.3.5 <appSettings> 150
5.3.6 <connectionStrings> 152
5.3.7通过编程读写配置节 152
5.3.8网站管理工具(WAT) 155
5.3.9扩展配置文件结构 156
5.3.10加密配置节 159
5.4 .NET组件 161
5.4.1创建组件 161
5.4.2通过App_Code目录使用组件 162
5.4.3通过 Bin目录使用组件 163
5.5扩展HTTP管道 165
5.5.1 HTTP处理程序 165
5.5.2创建自定义的HTTP处理程序 167
5.5.3配置自定义的HTTP处理程序 168
5.5.4使用无须配置的HTTP处理程序 169
5.5.5创建高级的HTTP处理程序 169
5.5.6为非HTML内容创建HTTP处理程序 171
5.5.7 HTTP模块 173
5.5.8创建自定义HTTP模块 174
5.6总结 176
第6章 状态管理 177
6.1 ASPNET状态管理 177
6.2视图状态 179
6.2.1视图状态示例 180
6.2.2在视图状态中保存对象 181
6.2.3视图状态评估 183
6.2.4有选择地禁用视图状态 184
6.2.5视图状态安全 185
6.3在页面间传送信息 186
6.3.1查询字符串 187
6.3.2跨页回发 188
6.4 cookie 193
6.5会话状态 194
6.5.1会话架构 194
6.5.2使用会话状态 196
6.5.3配置会话状态 197
6.5.4会话状态安全 202
6.6应用程序状态 203
6.7总结 206
第二部分 数据访问 208
第7章ADONET基础 208
7.1 ADONET架构 209
7.1.1 ADONET数据提供程序 209
7.1.2 ADONET的标准化 210
7.1.3基本ADONET类 211
7.2 Connection类 212
7.2.1连接字符串 212
7.2.2测试连接 214
7.2.3连接池 215
7.3 Command类和DataReader类 217
7.3.1 Command基础 217
7.3.2 DataReader类 218
7.3.3 ExecuteReader()方法和DataReader 218
7.3.4 ExecuteScalar()方法 223
7.3.5 ExecuteNonQuery()方法 223
7.3.6 SQL注入攻击 224
7.3.7使用参数化命令 226
7.3.8调用存储过程 227
7.4事务 229
7.4.1事务和ASPNET应用程序 230
7.4.2隔离级别 234
7.4.3保存点 235
7.5提供程序无关的代码 235
7.5.1创建工厂 236
7.5.2用工厂创建对象 237
7.5.3使用提供程序无关的代码的查询 237
7.6总结 239
第8章 数据组件和DataSet 240
8.1构建数据访问组件 240
8.1.1数据包 241
8.1.2存储过程 242
8.1.3数据应用类 243
8.1.4测试数据库组件 248
8.2非连接的数据 249
8.2.1 Web应用程序和DataSet 250
8.2.2 XML集成 251
8.3 DataSet类 251
8.4 DataAdapter类 252
8.4.1填充DataSet 253
8.4.2使用多个表和关系 254
8.4.3查找特定行 257
8.4.4在数据访问类里使用DataSet 257
8.4.5数据绑定 258
8.5 DataView类 259
8.5.1使用DataView排序 259
8.5.2使用DataView过滤 261
8.5.3使用关系的高级过滤 262
8.5.4计算列 263
8.6总结 264
第9章 数据绑定 265
9.1基本的数据绑定 265
9.1.1单值绑定 266
9.1.2其他类型的表达式 268
9.1.3重复值绑定 271
9.2数据源控件 277
9.3 SqlDataSource 278
9.3.1选择记录 279
9.3.2参数化命令 281
9.3.3错误处理 285
9.3.4更新记录 286
9.3.5删除记录 289
9.3.6插入记录 289
9.3.7 SqlDataSource的不足 290
9.4 ObjectDataSource 291
9.4.1选择记录 291
9.4.2更新记录 295
9.4.3使用数据对象执行更新 296
9.5数据源控件的限制 299
9.5.1问题 299
9.5.2添加其他项 300
9.5.3使用SqlDataSource处理其他选项 301
9.5.4使用ObjectDataSource处理其他选项 301
9.6总结 302
第10章 富数据控件 303
10.1 GridView 303
10.2格式化GridView 307
10.2.1格式化字段 307
10.2.2样式 308
10.2.3格式化特定值 311
10.3 GridView行选择 313
10.3.1使用选择来创建主—从表单 314
10.3.2 SelectedIndexChanged事件 315
10.3.3将数据字段用作选择按钮 315
10.4对GridView排序 316
10.4.1使用SqlDataSource排序 317
10.4.2使用ObjectDataSource排序 318
10.4.3排序和选择 319
10.4.4高级排序 319
10.5 GridView分页 320
10.5.1自动分页 320
10.5.2分页和选择 322
10.5.3 ObjectDataSource的自定义分页 322
10.5.4定制分页栏 324
10.6 GridView模板 325
10.6.1使用多个模板 327
10.6.2在Visual Studio中编辑模板 328
10.6.3绑定到方法 328
10.6.4处理模板中的事件 330
10.6.5使用模板编辑 330
10.6.6模板中的客户端 335
10.7 ListView 336
10.7.1分组 338
10.7.2分页 340
10.8 DetailsView和FormView 341
10.8.1 DetailsView 341
10.8.2 FormView 344
10.9高级网格 345
10.9.1 GridView中的汇总 345
10.9.2单个表中的父/子视图 347
10.9.3使用查找表编辑字段 349
10.9.4处理来自数据库的图片 351
10.9.5探测并发冲突 355
10.10总结 359
第11章 缓存和异步页面 360
11.1理解ASENET缓存 360
11.2输出缓存 361
11.2.1声明性的输出缓存 361
11.2.2缓存和查询字符串 362
11.2.3使用特定查询字符串参数的缓存 363
11.2.4自定义缓存控制 364
11.2.5使用HttpCachePolicy类进行缓存 365
11.2.6缓存后替换和部分页缓存 365
11.2.7缓存用户配置 367
11.2.8缓存配置 368
11.2.9输出缓存扩展 369
11.3数据缓存 373
11.3.1向缓存添加项目 373
11.3.2简单的缓存测试 375
11.3.3缓存优先级 376
11.3.4使用数据源控件的缓存 376
11.4缓存依赖 379
11.4.1文件和缓存项目依赖 379
11.4.2聚合依赖 380
11.4.3移除项目回调 381
11.4.4理解SQL缓存通知 383
11.4.5缓存通知的工作方式 384
11.4.6启用通知 384
11.4.7创建缓存依赖 385
11.5自定义缓存依赖 386
11.5.1基本的自定义缓存依赖 386
11.5.2使用消息队列的自定义缓存依赖 387
11.6异步页面 389
11.6.1创建异步页面 390
11.6.2在异步页面中查询数据 392
11.6.3错误处理 393
11.6.4在异步任务中使用缓存 395
11.6.5多异步任务和超时 397
11.7总结 399
第12章 文件和流 400
12.1使用文件系统 400
12.1.1 Directory类和File类 400
12.1.2 DirectoryInfo类和FileInfo类 402
12.1.3 DriveInfo类 404
12.1.4使用Attributes 405
12.1.5使用通配符过滤文件 407
12.1.6获取文件的版本信息 407
12.1.7 Path类 408
12.1.8文件浏览器 410
12.2使用流读写文件 414
12.2.1文本文件 415
12.2.2二进制文件 416
12.2.3上传文件 417
12.2.4使文件对多用户安全 419
12.2.5压缩 423
12.3序列化 423
12.4总结 426
第13章LINQ 427
13.1 LINQ基础 427
13.1.1延迟执行 429
13.1.2 LINQ是如何工作的 429
13.1.3 LINQ表达式 430
13.1.4揭秘LINQ表达式 436
13.2 LINQ to DataSet 439
13.2.1强类型的DataSet 441
13.2.2空值 441
13.3 LINQ to Entities 441
13.3.1生成数据模型 442
13.3.2数据模型类 442
13.3.3实体关系 444
13.3.4查询存储过程 446
13.3.5 LINQ to Entities查询揭 447
13.4数据库操作 452
13.4.1插入 452
13.4.2更新 454
13.4.3删除 454
13.4.4管理并发 455
13.4.5处理并发冲突 455
13.5 EntityDataSource控件 459
13.5.1显示数据 459
13.5.2获取关联数据 463
13.5.3编辑数据 464
13.5.4验证 464
13.6使用QueryExtender控件 465
13.6.1使用SearchExperssion 466
13.6.2使用RangeExpression 467
13.6.3使用PropertyExpression 467
13.6.4使用MethodExpression 468
13.7总结 468
第14章XML 470
14.1什么时候使用XML 470
14.2 XML简介 471
14.2.1 XML的优点 472
14.2.2格式良好的XML 472
14.2.3 XML命名空间 473
14.2.4 XML架构 474
14.3基于流的XML处理 475
14.3.1写XML文件 476
14.3.2读取XML文件 478
14.4内存中的XML处理 481
14.4.1 XmlDocument 482
14.4.2 XPathNavigator 485
14.4.3 XDocument 486
14.5搜索XML内容 491
14.5.1搜索XmlDocument 491
14.5.2使用XPath搜索XmlDocument 493
14.5.3使用LINQ搜索XDocument 494
14.6验证XML内容 496
14.6.1基本架构 496
14.6.2验证XmIDocument 497
14.6.3使用XDocument进行验证 498
14.7转换XML内容 499
14.7.1基本的样式表 499
14.7.2使用XslCompiledTransform 500
14.7.3使用Xml控件 501
14.7.4使用LINQ to XML转换 XML 502
14.8 XML数据绑定 504
14.8.1非层次化绑定 504
14.8.2使用XPath 506
14.8.3嵌套的网格 508
14.8.4使用TreeView的层次化绑定 509
14.8.5使用XSLT 511
14.8.6绑定到来自其他源的XML内容 512
14.8.7通过XmIDataSource更新XML 513
14.9 XML和ADONET数据集 513
14.9.1把DataSet转换为XML 514
14.9.2把DataSet作为XML访问 515
14.10总结 517
第三部分 构建ASP.NET网站 520
第15章 用户控件 520
15.1用户控件基础 520
15.1.1创建简单的用户控件 521
15.1.2把页面转换成用户控件 522
15.2为用户控件添加代码 523
15.2.1处理事件 523
15.2.2添加属性 524
15.2.3使用自定义对象 525
15.2.4添加事件 528
15.2.5公开内部Web控件 530
15.3动态加载用户控件 531
15.4局部页面缓存 534
15.4.1 VaryByControl 535
15.4.2共享缓存控件 536
15.5总结 537
第16章 主题和母版页 538
16.1层叠样式表 538
16.1.1创建样式表 538
16.1.2应用样式表规则 540
16.2主题 542
16.2.1主题文件夹和外观 543
16.2.2应用简单主题 544
16.2.3处理主题冲突 545
16.2.4为同一控件创建多个外观 546
16.2.5含有模板和图片的外观 547
16.2.6在主题里使用CSS 549
16.2.7通过配置文件来应用主题 549
16.2.8动态应用主题 550
16.3标准化网站布局 551
16.4母版页基础 552
16.4.1简单的母版页 552
16.4.2简单的内容页 554
16.4.3默认内容 556
16.4.4具有表格和CSS布局的母版页 556
16.4.5母版页和相对路径 559
16.4.6通过配置文件应用母版页 559
16.5高级母版页 560
16.5.1和母版页类交互 560
16.5.2动态设置母版页 561
16.5.3嵌套母版页 561
16.6总结 563
第17章 网站导航 564
17.1多视图页面 564
17.1.1 MultiView控件 565
17.1.2 Wizard控件 568
17.2站点地图 575
17.2.1定义站点地图 576
17.2.2绑定站点地图 577
17.2.3导航路径 578
17.2.4显示站点地图的一部分 580
17.2.5站点地图对象 583
17.2.6加入自定义站点地图信息 584
17.2.7创建自定义的 SiteMapProvider 584
17.2.8安全调整 590
17.3 URL映射和路由 592
17.3.1 URL映射 592
17.3.2 URL路由 593
17.4 TreeView控件 594
17.4.1 TreeNode 595
17.4.2按需填充节 597
17.4.3 TrecView样式 598
17.5 Menu控件 601
17.5.1 Menu样式 603
17.5.2 Menu模板 605
17.6总结 606
第18章 网站部署 607
18.1安装和配置HS 607
18.1.1安装HS 7 607
18.1.2管理IIS 7 608
18.2部署网站 610
18.2.1通过复制文件进行部署 611
18.2.2使用Web部署 614
18.2.3通过FTP部署 621
18.3管理网站 626
18.3.1创建新站点 626
18.3.2创建虚拟目录 627
18.3.3使用VirtualPathProvider 628
18.3.4使用应用程序池 631
18.3.5使用应用程序预热 633
18.4扩展集成管道 634
18.4.1创建处理程序 634
18.4.2部署处理程序 635
18.4.3配置处理程序 635
18.4.4测试处理程序 636
18.5总结 636
第四部分 安全 638
第19章ASP NET安全模型 638
19.1为何创建安全软件 638
19.1.1理解潜在的威胁 638
19.1.2安全编程原则 639
19.1.3理解Gatekeeper 640
19.2理解安全级别 641
19.2.1验证 641
19.2.2授权 642
19.2.3机密性和完整性 643
19.2.4互相协作 643
19.3理解SSL 644
19.3.1理解证书 645
19.3.2理解SSL 645
19.3.3在IIS 7x中配置 SSL 646
19.4总结 649
第20章 表单验证 650
20.1表单验证介绍 650
20.1.1为什么使用表单验证 650
20.1.2为什么不使用表单验证 652
20.1.3为什么不自己实现cookie 验证 653
20.1.4表单验证类 654
20.2实现表单验证 655
20.2.1配置表单验证 655
20.2.2禁止匿名用户访问 657
20.2.3创建自定义登录页面 658
20.2.4自定义凭证存储 662
20.2.5表单验证中的持久化cookie 663
20.3 IIS 7x和表单验证 665
20.4总结 669
第21章 成员资格 670
21.1介绍ASP NET的成员资格API 670
21.2使用成员资格API 672
21.2.1配置表单验证 673
21.2.2创建数据存储 674
21.2.3配置连接字符串和成员资格提供程序 679
21.2.4创建并验证用户 681
21.3使用安全控件 683
21.3.1 Login控件 684
21.3.2 LoginStatus控件 693
21.3.3 LoginView控件 693
21.3.4 PasswordRecovery控件 694
21.3.5 ChangePassword控件 697
21.3.6 CreateUserWizard控件 698
21.4在HS 7x里配置成员资格 702
21.4.1配置提供程序和用户 702
21.4.2在其他应用程序里使用成员资格API 703
21.5使用Membership类 705
21.5.1从存储中获得用户 706
21.5.2更新存储中的用户 708
21.5.3创建和删除用户 708
21.5.4检验用户 709
21.6总结 709
第22章Windows验证 710
22.1介绍Windows验证 710
22.1.1为什么使用Windows验证 710
22.1.2为什么不使用Windows验证 711
22.1.3 Windows验证机制 712
22.2实现Windows验证 717
22.2.1配置IIS 7x 717
22.2.2配置ASP.NET 718
22.2.3 IIS 7x管道 719
22.2.4禁止匿名用户访问 722
22.2.5访问Windows用户信息 723
22.3身份模拟 727
22.3.1 Windows中的身份模拟和委托 728
22.3.2经过配置的身份模拟 729
22.3.3可编程的身份模拟 729
22.4总结 732
第23章 授权和角色 733
23.1 URL授权 733
23.2文件授权 738
23.3在代码中检查授权 739
23.3.1使用IsInRole()方法 739
23.3.2使用PrincipalPermission类 740
23.4为基于角色的授权使用角色API 742
23.4.1和角色一起使用LoginView 控件 747
23.4.2通过编程访问角色 748
23.4.3在Windows验证中使用角色 API 750
23.5 IIS 7x里的授权和角色 752
23.5.1在IIS 7x里使用ASP.NET 角色授权 754
23.5.2在IIS 7x中管理ASP.NET角色 756
23.6总结 757
第24章 用户配置 758
24.1理解用户配置 758
24.1.1用户配置的性能 758
24.1.2用户配置如何存储数据 759
24.1.3用户配置和验证 760
24.1.4用户配置与自定义的数据组件 760
24.2使用SqlProfileProvider 761
24.2.1创建用户配置表 761
24.2.2配置提供程序 763
24.2.3定义用户配置属性 764
24.2.4使用用户配置属性 764
24.2.5用户配置序列化 766
24.2.6用户配置组 767
24.2.7用户配置和自定义的数据类型 768
24.2.8用户配置API 771
24.2.9匿名用户配置 773
24.3自定义的用户配置提供程序 775
24.3.1自定义的用户配置提供程序类 775
24.3.2设计FactoredProfileProvider 777
24.3.3通过编码实现 FactoredProfileProvider 778
24.3.4 测试FactoredProfileProvider 781
24.4总结 784
第25章 加密 785
25.1加密数据:机密性问题 785
25.2 .NET加密命名空间 786
25.3理解.NET加密类 789
25.3.1对称加密算法 790
25.3.2非对称加密 791
25.3.3抽象加密类 791
25.3.4 ICryptoTransform接口 792
25.3.5 CryptoStream类 793
25.4加密敏感数据 793
25.4.1管理秘密信息 794
25.4.2使用对称算法 795
25.4.3使用非对称算法 799
25.4.4加密数据库中的敏感数据 801
25.5加密查询字符串 806
25.5.1包装查询字符串 806
25.5.2创建一个测试页面 808
25.6总结 810
第26章 自定义成员资格提供程序 811
26.1自定义提供程序的架构 811
26.2创建自定义提供程序的基本步骤 812
26.2.1自定义提供程序的总体设计 813
26.2.2设计并实现自定义存储 813
26.2.3实现提供程序类 820
26.2.4使用自定义提供程序类 837
26.3总结 840
第五部分 高级用户界面 842
第27章 自定义服务器控件 842
27.1自定义服务器控件入门 842
27.1.1创建简单的自定义控件 842
27.1.2使用自定义控件 844
27.1.3工具箱中的自定义控件 845
27.1.4创建支持样式属性的Web控件 847
27.1.5呈现过程 850
27.2处理不同的浏览器 852
27.2.1 HtmlTextWriter 852
27.2.2浏览器检测 852
27.2.3浏览器属性 853
27.2.4覆盖浏览器类型侦测 854
27.2.5自适应呈现 855
27.3控件状态和事件 856
27.3.1视图状态 856
27.3.2控件状态 858
27.3.3回传数据和change事件 860
27.3.4触发回传 862
27.4扩展现有的Web控件 863
27.4.1组合控件 864
27.4.2派生控件 866
27.5总结 869
第28章 图形、GDI+和图表 870
28.1 ImageMap控件 870
28.1.1创建热点 871
28.1.2处理热点单击 872
28.1.3自定义热点 873
28.2使用GDI+画图 875
28.2.1简单绘制 875
28.2.2图像格式和质量 877
28.2.3 Graphics类 878
28.2.4使用Graphi csPath 880
28.2.5画笔 881
28.2.6画刷 883
28.3在网页上嵌入动态图形 885
28.3.1使用PNG格式 885
28.3.2传递信息给动态图像 886
28.3.3使用GDI+的自定义控件 888
28.4使用Chart控件 892
28.4.1创建基本的图表 892
28.4.2用数据填充图表 897
28.5总结 904
第29章JavaScript和Ajax技术 905
29.1 JavaScript本质 905
29.1.1 HTML DOM 906
29.1.2客户端事件 906
29.1.3脚本块 908
29.1.4操纵HTML元素 910
29.1.5调试JavaScript 910
29.2基本的JavaScript示例 912
29.2.1创建JavaScript页面处理器 912
29.2.2使用JavaScript异步下载图片 915
29.2.3呈现脚本块 919
29.3脚本注入攻击 920
29.3.1请求验证 921
29.3.2禁用请求验证 922
29.3.3扩展请求验证 923
29.4带有JavaScript的自定义控件 925
29.4.1弹出窗口 925
29.4.2滚动按钮 928
29.5框架 931
29.5.1框架导航 932
29.5.2内联框架 933
29.6理解Ajax 934
29.6.1 XMLHttpRequest对象 935
29.6.2 Ajax示例 936
29.7在客户端回调中使用Aj ax 939
29.7.1创建客户端回调 940
29.7.2深入了解客户端回调 945
29.7.3自定义控件里的客户端回调 946
29.8总结 949
第30章ASP.NETAJAX 950
30.1介绍ASPNET AJAX 950
30.1.1客户端的ASP.NET AJAX:脚本库 951
30.1.2服务器端的ASPNET AJAX:ScriptManager 952
30.2服务器回调 952
30.2.1 ASPNET AJAX中的Web服务 953
30.2.2在页面里放置Web方法 959
30.2.3 ASP.NET AJAX应用程序服务 960
30.3 ASP.NET AJAX服务器控件 966
30.3.1使用UpdatePanel的局部呈现 966
30.3.2使用Timer的定时刷新 973
30.3.3使用UpdateProgress的耗时更新 974
30.3.4管理浏览器历史 976
30.4深入客户端库 979
30.4.1理解客户端模型 980
30.4.2 JavaScript的面向对象编程 981
30.4.3网页框架 987
30.5控件扩展器 991
30.5.1安装ASPNET AJAX控件工具包 992
30.5.2 AutoCompleteExtender 993
30.5.3 ASPNET AJAX控件工具包 996
30.6总结 999
第31章 使用Web部件页面的门户网站 1000
31.1典型门户页面 1000
31.2基本Web部件页面 1002
31.2.1创建页面设计 1002
31.2.2 WebPartManager和WebPartZone 1003
31.2.3向页面添加Web部件 1004
31.2.4定制页面 1008
31.3创建Web部件 1010
31.3.1简单的Web部件任务 1010
31.3.2开发高级Web部件 1017
31.3.3 Web部件编辑器 1024
31.3.4连接Web部件 1029
31.3.5自定义动词和Web部件 1036
31.3.6用户控件和高级Web部件 1037
31.3.7动态上传Web部件 1040
31.3.8对Web部件的授权 1044
31.3.9个性化的最后任务 1045
31.4总结 1046
第32章MVC 1047
32.1 MVC和Web表单的选择 1047
32.2创建基本的MVC应用程序 1047
32.2.1创建模型 1048
32.2.2创建控制器 1049
32.2.3创建Index视图 1050
32.2.4测试(未完成的)应用程序 1050
32.2.5完成控制器和视图 1051
32.2.6修改Site.Master文件 1053
32.3扩展基础的MVC应用程序 1053
32.3.1配置路由 1054
32.3.2增加错误处理 1055
32.3.3增加验证 1056
32.3.4增强数据存储访问 1057
32.3.5增加对外键约束的支持 1059
32.4自定义视图 1059
32.4.1修改视图 1060
32.4.2增加视图数据 1062
32.5强化模型 1063
32.6验证数据 1066
32.6.1执行基本的验证 1067
32.6.2增加验证标注 1068
32.7使用动作结果 1071
32.7.1返回JSON数据 1072
32.7.2调用其他控制器方法 1072
32.8总结 1074
第33章 动态数据 1075
33.1创建动态数据应用程序 1075
33.1.1创建动态数据网站 1075
33.1.2检验动态数据网站 1077
33.2深入理解动态数据项目 1080
33.3自定义动态数据网站 1080
33.3.1使用模板进行自定义 1081
33.3.2使用路由进行自定义 1087
33.3.3使用元数据进行自定义 1094
33.3.4自定义验证 1099
33.4总结 1103
第34章Silverlight 1104
34.1理解Silverlight 1105
34.1.1 Silverlight与Flash对比 1106
34.1.2 Silverlight 系统需求 1107
34.2创建Silverlight解决方案 1108
34.2.1 Silverlight编译 1109
34.2.2入口页面 1110
34.3创建Silverlight项目 1114
34.3.1设计Silverlight页面 1114
34.3.2理解XAML 1117
34.3.3设置属性 1118
34.3.4 XAML代码隐藏 1119
34.3.5处理事件 1120
34.3.6了解Silverlight类库 1121
34.4布局 1122
34.4.1 Canvas 1123
34.4.2网格 1127
34.5动画 1131
34.5.1动画基础知识 1132
34.5.2定义动画 1132
34.5.3 StoryBoard类 1133
34.5.4交互式动画实例 1135
34.5.5变换 1138
34.6 Silverlight使用Web服务 1141
34.6.1创建Web服务 1141
34.6.2添加Web引用 1142
34.6.3调用Web服务 1143
34.6.4配置Web服务URL 1144
34.6.5跨域Web服务调用 1144
34.7总结 1146