图书介绍
精通ASP.NET4.5 第5版PDF|Epub|txt|kindle电子书版本网盘下载
![精通ASP.NET4.5 第5版](https://www.shukui.net/cover/49/30620600.jpg)
- (美)弗瑞曼,(美)麦克唐纳,(美)苏帕斯塔著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115364111
- 出版时间:2014
- 标注页数:1008页
- 文件大小:157MB
- 文件页数:1026页
- 主题词:网页制作工具-程序设计
PDF下载
下载说明
精通ASP.NET4.5 第5版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 入门2
第1章 第一个ASP.NET应用程序2
1.1 准备工作站2
1.2 创建新的ASP.NET项目3
1.2.1 添加新的Web窗体4
1.2.2 测试示例应用程序5
1.3 创建简单的应用程序8
1.3.1 设定场景8
1.3.2 创建数据模型和存储库8
1.3.3 创建窗体并设置其样式9
1.3.4 处理窗体12
1.4 创建摘要视图16
1.4.1 设置动态HTML的格式18
1.4.2 测试动态代码18
1.4.3 调用代码隐藏方法18
1.5 执行验证21
1.6 总结24
第2章 ASP.NET背景信息25
2.1 ASP.NETFramework概述25
2.2 关于本书27
2.2.1 所需了解的信息27
2.2.2 如果没有相关经验该怎么办27
2.2.3 需要使用哪些软件和技术28
2.2.4 本书是否包含大量示例28
2.3 本书的结构28
2.4 了解Web窗体29
2.4.1 Web窗体的优势30
2.4.2 了解Web窗体的劣势31
2.5 总结32
第3章 C#基本功能33
3.1 创建示例项目33
3.2 使用自动实现的属性34
3.3 使用对象和集合初始化器37
3.4 使用扩展方法39
3.4.1 将扩展方法应用于接口41
3.4.2 创建过滤式扩展方法43
3.5 使用lambda表达式45
3.6 使用自动类型推断48
3.7 使用匿名类型48
3.8 使用泛型类型50
3.8.1 使用通用基类52
3.8.2 使用泛型类型54
3.9 显式实现接口56
3.10 执行语言集成查询58
3.11 使用异步方法62
3.12 总结65
第4章 使用jQuery66
4.1 创建示例项目66
4.1.1 在示例项目中添加jQuery68
4.1.2 在Web窗体中添加jQuery69
4.2 jQuery入门70
4.2.1 等待DOM70
4.2.2 jQuery语句71
4.3 选择元素72
4.3.1 按类型、类或ID选择元素72
4.3.2 使用关系和联合选择元素73
4.3.3 使用特性选择元素74
4.3.4 使用过滤器选择元素75
4.3.5 使用jQuery函数77
4.4 使用jQuery事件81
4.5 处理JSON数据83
4.6 总结85
第5章 基本开发工具86
5.1 创建示例项目86
5.2 使用Visual Studio调试器88
5.2.1 创建条件断点89
5.2.2 了解应用程序状态90
5.2.3 使用Immediate Window91
5.3 使用Page Inspector和浏览器F12工具92
5.3.1 使用JavaScript Console93
5.3.2 使用网络监视器94
5.3.3 使用JavaScript Profiler95
5.4 使用NuGet96
5.5 使用Opera Mobile98
5.6 使用JavaScript库98
5.6.1 jQuery、jQuery UI和jQuery Mobile99
5.6.2 Knockout99
5.6.3 Modernizr99
5.6.4 requireJS99
5.7 总结99
第6章 SportsStore:真实的应用程序100
6.1 创建项目100
6.1.1 创建文件夹结构100
6.1.2 添加全局应用程序类102
6.1.3 创建数据库103
6.1.4 定义数据库架构105
6.1.5 向数据库中添加数据106
6.2 创建数据模型和存储库107
6.2.1 创建数据模型类108
6.2.2 添加Entity Framework108
6.2.3 创建Entity Framework上下文109
6.2.4 创建产品存储库110
6.3 创建产品清单111
6.4 添加分页113
6.4.1 显示产品页113
6.4.2 添加分页链接116
6.5 设置列表Web窗体的样式117
6.5.1 创建母版页118
6.5.2 自定义母版页119
6.5.3 应用母版页120
6.5.4 测试母版页121
6.6 总结121
第7章 SportsStore:导航和购物篮122
7.1 配置URL路由122
7.1.1 创建路由配置类123
7.1.2 更新全局应用程序类124
7.1.3 使用路由变量125
7.1.4 测试路由配置126
7.1.5 生成路由链接127
7.2 添加类别信息128
7.2.1 创建用户控件128
7.2.2 将用户控件应用于母版页130
7.2.3 添加CSS样式131
7.2.4 扩展URL方案131
7.2.5 添加显示类别功能132
7.2.6 突出显示当前类别134
7.3 构建购物篮135
7.3.1 定义Cart类136
7.3.2 添加购物篮按钮137
7.3.3 创建会话帮助程序140
7.3.4 处理窗体发布142
7.3.5 显示购物篮的内容144
7.3.6 测试购物篮146
7.4 总结147
第8章 SportsStore:完善购物篮148
8.1 移除不需要的购物篮产品148
8.1.1 了解视图状态150
8.1.2 禁用视图状态151
8.2 添加购物篮摘要152
8.2.1 定义CSS样式153
8.2.2 应用购物篮摘要控件154
8.2.3 合并用户控件声明155
8.3 提交订单156
8.3.1 扩展数据库和数据模型156
8.3.2 添加Checkout链接和URL159
8.3.3 处理订单162
8.4 添加验证165
8.4.1 添加NuGet程序包167
8.4.2 创建并使用脚本捆绑包168
8.4.3 设置客户端验证170
8.4.4 创建服务器控件171
8.4.5 应用服务器控件173
8.5 总结175
第9章 SportsStore:管理176
9.1 添加常用构建块176
9.1.1 扩展路由配置176
9.1.2 添加管理母版页177
9.1.3 添加CSS样式表178
9.1.4 添加Web窗体179
9.2 添加订单管理180
9.2.1 清空和填充数据库180
9.2.2 添加Web窗体内容181
9.2.3 创建代码隐藏类184
9.3 添加类别管理186
9.3.1 扩展存储库186
9.3.2 添加Web窗体187
9.3.3 设置CRUD方法189
9.3.4 测试类别管理190
9.4 设置授权191
9.4.1 确保管理页面的安全191
9.4.2 创建身份验证登录Web窗体192
9.4.3 测试失败的身份验证194
9.4.4 测试成功的身份验证和授权194
9.5 总结195
第10章 SportsStore:部署196
10.1 为最终测试禁用调试模式196
10.2 准备Windows Azure197
10.2.1 创建网站和数据库198
10.2.2 准备数据库以进行远程管理200
10.2.3 创建架构200
10.3 部署应用程序203
10.4 总结207
第11章 可测试的Web应用程序208
11.1 了解问题所在208
11.2 了解解决方案209
11.3 创建示例项目211
11.3.1 设置静态内容211
11.3.2 设置数据模型212
11.3.3 实现存储库213
11.3.4 添加基础架构214
11.4 实现RSVP页面216
11.4.1 创建表示器216
11.4.2 创建视图217
11.4.3 测试RSVP页面219
11.5 添加单元测试220
11.5.1 创建单元测试项目220
11.5.2 创建单元测试222
11.5.3 测试输入值224
11.6 添加依赖注入229
11.6.1 添加NuGet程序包230
11.6.2 配置注入231
11.7 完成整个应用程序233
11.7.1 创建表示器234
11.7.2 配置依赖注入235
11.8 总结236
第二部分 核心ASP.NET平台238
第12章 使用Web窗体238
12.1 创建示例项目238
12.2 了解Web窗体文件239
12.2.1 使用代码片段240
12.2.2 了解可编程HTML元素249
12.2.3 了解控件250
12.3 了解代码隐藏类251
12.4 了解Web窗体的工作机制253
12.4.1 处理可编程HTML元素254
12.4.2 编译Web窗体255
12.5 使用母版页257
12.5.1 配置母版页258
12.5.2 了解母版页占位符259
12.5.3 应用母版页260
12.5.4 使用母版页代码隐藏类261
12.5.5 嵌套母版页263
12.6 总结265
第13章 生命周期和上下文266
13.1 创建示例项目266
13.2 了解应用程序生命周期270
13.3 了解请求生命周期273
13.3.1 了解模块和处理程序274
13.3.2 处理请求生命周期事件276
13.3.3 在一个方法中处理多个事件278
13.4 了解上下文对象281
13.4.1 使用HttpContext对象281
13.4.2 使用HttpApplication对象282
13.4.3 使用HttpRequest对象286
13.4.4 使用HttpResponse对象288
13.5 进行组合290
13.5.1 对请求计时291
13.5.2 限制访问292
13.5.3 记录请求信息293
13.6 总结293
第14章 模块294
14.1 准备示例应用程序294
14.2 了解模块296
14.2.1 创建模块296
14.2.2 注册模块297
14.3 创建模块项目298
14.3.1 创建Visual Studio项目298
14.3.2 创建模块299
14.3.3 注册模块301
14.4 使用模块事件302
14.4.1 定义模块事件302
14.4.2 处理模块事件303
14.4.3 按名称查找模块306
14.5 使用内置模块309
14.6 进行组合313
14.7 总结315
第15章 处理程序316
15.1 准备示例应用程序316
15.2 了解处理程序317
15.3 处理程序和请求生命周期318
15.4 创建一般处理程序320
15.4.1 实现自定义行为321
15.4.2 测试一般处理程序322
15.5 创建自定义处理程序324
15.5.1 创建自定义处理程序324
15.5.2 注册自定义处理程序325
15.6 创建自定义处理程序工厂326
15.6.1 控制处理程序实例化327
15.6.2 动态选择处理程序329
15.6.3 重复使用处理程序330
15.7 协调模块与处理程序333
15.7.1 使用Items集合334
15.7.2 使用声明式接口337
15.8 进行组合338
15.8.1 查找适当的内置处理程序工厂339
15.8.2 扩展基类340
15.8.3 编写处理程序341
15.8.4 注册处理程序工厂341
15.8.5 测试处理程序工厂342
15.9 总结343
第16章 页面和控件生命周期事件344
16.1 准备示例应用程序344
16.2 了解Page类345
16.3 了解页面生命周期349
16.4 处理控件事件351
16.4.1 创建一个简单的控件352
16.4.2 注册并应用控件353
16.5 接收控件事件355
16.6 了解端到端Web生命周期359
16.7 页面上下文360
16.7.1 访问上下文对象361
16.7.2 设置Page指令值361
16.7.3 提供特定于Web窗体的信息362
16.8 进行组合363
16.9 总结365
第17章 管理请求执行过程366
17.1 准备示例应用程序366
17.2 使用URL重定向368
17.2.1 执行URL重定向369
17.2.2 手动执行重定向371
17.3 管理处理程序选择和执行过程372
17.3.1 预先选择处理程序373
17.3.2 传输请求374
17.3.3 通过显式执行处理程序生成响应377
17.4 进行组合378
17.4.1 创建用于查看源代码的处理程序378
17.4.2 使用HTTP重定向380
17.4.3 预先选择处理程序381
17.4.4 执行多个处理程序383
17.5 总结387
第18章 管理状态数据388
18.1 创建示例应用程序388
18.2 了解状态数据389
18.3 存储应用程序数据390
18.4 存储用户数据392
18.4.1 创建配置文件数据库392
18.4.2 配置数据库连接394
18.4.3 配置配置文件和配置文件属性395
18.4.4 定义配置文件提供程序396
18.4.5 定义配置文件属性397
18.4.6 使用配置文件数据398
18.5 存储会话数据401
18.5.1 使用会话数据401
18.5.2 配置会话数据404
18.5.3 使用状态服务器406
18.5.4 使用SQL数据库407
18.6 使用视图数据410
18.7 使用cookie413
18.8 进行整合414
18.8.1 创建模块415
18.8.2 创建Web窗体416
18.9 总结419
第19章 缓存420
19.1 准备示例应用程序420
19.2 使用应用程序缓存423
19.3 管理数据项缓存424
19.4 使用依赖项缓存数据426
19.4.1 使用内部依赖项缓存数据428
19.4.2 创建自定义依赖项429
19.4.3 使用聚合依赖项缓存数据432
19.4.4 缓存具有过期约束条件的数据433
19.4.5 使用清理优先级缓存数据434
19.5 接收缓存通知436
19.5.1 接收清除缓存通知436
19.5.2 使用通知避免清除缓存438
19.6 配置缓存440
19.7 进行组合441
19.8 总结443
第20章 缓存输出444
20.1 准备示例应用程序444
20.2 缓存Web窗体输出446
20.2.1 控制端到端缓存447
20.2.2 缓存多个内容副本448
20.2.3 创建缓存配置文件451
20.3 选择性地更新内容452
20.4 缓存用户控件输出455
20.5 缓存服务器控件输出459
20.6 创建缓存依赖项460
20.7 使用自定义输出缓存461
20.7.1 创建自定义缓存实现462
20.7.2 注册自定义输出缓存实现463
20.7.3 动态选择输出缓存实现465
20.8 配置输出缓存466
20.9 进行组合467
20.9.1 创建处理程序工厂类468
20.9.2 注册处理程序工厂472
20.10 总结473
第21章 处理错误474
21.1 准备示例项目474
21.2 了解错误477
21.3 自定义默认行为478
21.3.1 提供全包容性的错误页面479
21.3.2 处理特定HTTP错误483
21.3.3 指定特定于Web窗体的错误页面489
21.4 控制错误处理过程490
21.4.1 在Web窗体中处理错误490
21.4.2 在应用程序级别处理错误492
21.5 处理多个错误495
21.5.1 报告错误496
21.5.2 显示错误496
21.5.3 拦截错误497
21.6 进行组合499
21.6.1 删除现有错误处理代码499
21.6.2 定义模块499
21.7 总结501
第22章 管理路径502
22.1 准备示例项目502
22.1.1 创建模块502
22.1.2 创建附加内容504
22.2 使用路径504
22.2.1 获取路径信息505
22.2.2 操纵路径508
22.3 管理虚拟路径509
22.3.1 设置默认文档510
22.3.2 处理针对无扩展名URL的请求511
22.3.3 重写路径513
22.4 使用友好URL程序包515
22.4.1 禁用之前的示例515
22.4.2 安装和配置NuGet程序包516
22.4.3 使用FriendlyUrls库功能517
22.5 进行组合520
22.5.1 编写文件520
22.5.2 重写路径521
22.6 总结524
第23章 URL路由525
23.1 准备示例项目525
23.2 为路由准备应用程序526
23.3 使用固定路由528
23.4 添加变量段532
23.4.1 处理范围过大的路由533
23.4.2 创建可删节URL534
23.4.3 创建长度可变的段540
23.5 路由段值模型绑定542
23.6 生成传出URL544
23.7 进行组合546
23.7.1 生成诊断HTML547
23.7.2 测试URL匹配551
23.8 总结551
第24章 高级URL路由552
24.1 准备示例项目552
24.2 使用高级约束条件553
24.2.1 通过HTTP方法限制路由553
24.2.2 创建自定义路由限制555
24.3 路由文件请求557
24.4 使用路由处理程序560
24.4.1 阻止请求路由560
24.4.2 创建自定义路由处理程序564
24.5 创建自定义RouteBase实现566
24.6 进行组合569
24.6.1 禁用ASPX请求569
24.6.2 路由到其他文件类型571
24.6.3 让ASP.NET为传出URL选择路由574
24.7 总结577
第25章 身份验证和授权578
25.1 准备示例项目578
25.2 了解窗体身份验证579
25.3 配置ASP.NET身份验证581
25.4 执行身份验证582
25.4.1 验证用户身份584
25.4.2 获取身份验证信息586
25.5 执行授权587
25.5.1 了解授权和身份验证集成587
25.5.2 创建授权策略589
25.5.3 创建特定于位置的授权策略593
25.6 避开授权595
25.7 授权已路由的URL597
25.8 进行组合599
25.8.1 重建身份验证Web窗体599
25.8.2 添加母版页601
25.8.3 测试修订后的身份验证和授权603
25.9 总结603
第26章 成员资格604
26.1 准备示例项目604
26.2 在应用程序中添加成员资格605
26.2.1 安装通用提供程序605
26.2.2 为成员资格配置应用程序606
26.2.3 创建用户和角色610
26.2.4 使用成员资格执行身份验证611
26.3 使用成员资格612
26.3.1 执行密码更改613
26.3.2 执行密码恢复616
26.3.3 执行注册621
26.4 进行组合625
26.5 总结627
第27章 ASP.NET配置628
27.1 准备示例项目628
27.2 了解配置层次结构629
27.3 以编程方式获取配置信息630
27.3.1 使用应用程序设置631
27.3.2 处理连接字符串634
27.3.3 使用配置节638
27.3.4 处理整个配置641
27.4 创建自定义配置节和组644
27.4.1 创建简单的配置节644
27.4.2 创建集合配置节648
27.4.3 创建配置节组652
27.5 使用外部配置文件654
27.6 锁定配置节655
27.7 进行组合658
27.8 总结659
第28章 异步请求处理660
28.1 准备示例项目660
28.2 了解问题所在662
28.3 创建异步Web窗体663
28.3.1 使用异步方法665
28.3.2 创建和注册异步页面任务666
28.3.3 执行多个任务666
28.4 创建异步模块669
28.5 创建异步处理程序671
28.6 总结672
第三部分 窗体和控件674
第29章 使用控件674
29.1 准备示例项目674
29.2 了解控件675
29.2.1 了解基本的控件类676
29.2.2 使用控件以编程方式访问HTML元素676
29.2.3 使用自定义控件生成HTML片段678
29.2.4 使用自定义服务器控件682
29.2.5 使用控件显示数据685
29.2.6 使用控件模拟桌面开发688
29.3 利用控件层次结构691
29.3.1 在控件层次结构中导航691
29.3.2 在层次结构中查找控件并操纵控件693
29.3.3 以编程方式添加控件696
29.4 进行组合698
29.5 总结701
第30章 窗体和请求验证702
30.1 准备示例项目702
30.2 了解服务器端form元素703
30.3 检测窗体发布和回传706
30.3.1 在查询字符串中查找窗体数据708
30.3.2 检查POST请求708
30.4 处理窗体数据709
30.5 了解“一窗体”限制712
30.6 了解请求验证715
30.6.1 使用预先请求验证717
30.6.2 使用延迟请求验证718
30.6.3 使用未经验证的窗体数据719
30.6.4 在控件中验证请求722
30.7 进行组合723
30.8 总结725
第31章 创建自定义控件726
31.1 准备示例项目726
31.2 创建基本的控件728
31.2.1 了解Control指令728
31.2.2 注册和应用控件729
31.2.3 在Web.config文件中注册控件730
31.3 在控件中添加功能732
31.4 了解控件ID733
31.4.1 标识控件生成的HTML元素734
31.4.2 标识控件层次结构内的控件735
31.5 定义元素特性736
31.5.1 创建枚举特性738
31.5.2 创建集合特性739
31.6 创建服务器控件742
31.6.1 注册服务器控件744
31.6.2 使用HtmlTextWriter类746
31.7 进行组合748
31.8 总结749
第32章 有状态控件750
32.1 准备示例项目750
32.2 了解无状态性和控件生命周期752
32.2.1 使用会话状态753
32.2.2 通过窗体元素添加状态754
32.2.3 使用视图状态756
32.2.4 使用控件状态759
32.3 管理应用程序视图状态761
32.3.1 配置应用程序视图状态764
32.3.2 配置Web窗体和控件视图状态766
32.3.3 配置控件视图状态767
32.4 进行组合769
32.4.1 对input元素使用视图状态772
32.4.2 在子控件中使用视图状态775
32.4.3 视图状态数据不断增加777
32.4.4 混淆视图状态与控件状态778
32.5 总结779
第33章 服务器端HTML元素780
33.1 准备示例项目780
33.2 了解服务器端元素780
33.2.1 使用基类功能781
33.2.2 使用容器元素783
33.3 使用页面结构元素785
33.4 处理窗体元素787
33.4.1 使用input元素787
33.4.2 使用其他窗体元素793
33.5 使用HTML表796
33.5.1 枚举表796
33.5.2 使用特定表元素799
33.5.3 以编程方式创建表800
33.6 使用其他元素802
33.7 进行组合802
33.8 总结804
第34章 模型绑定805
34.1 准备示例项目805
34.2 了解问题所在807
34.3 应用模型绑定809
34.4 处理模型绑定和验证错误813
34.5 使用绑定特性819
34.5.1 应用模型绑定特性822
34.5.2 对复杂类型应用模型绑定特性824
34.6 进行组合825
34.6.1 创建自我验证模型类825
34.6.2 创建字段级别的错误控件827
34.7 总结829
第35章 数据绑定830
35.1 准备示例项目830
35.2 了解数据绑定834
35.2.1 配置数据绑定834
35.2.2 组合元素和数据控件837
35.3 编写自定义数据控件840
35.3.1 管理数据控件视图状态843
35.3.2 在自定义数据控件中添加模板844
35.3.3 为模板添加功能849
35.4 进行组合851
35.5 总结854
第36章 基本数据控件855
36.1 选择数据控件855
36.2 准备示例项目856
36.3 使用列表数据控件856
36.3.1 使用CheckBoxList控件857
36.3.2 使用DropDownList控件864
36.3.3 使用ListBox控件865
36.3.4 使用RadioButtonList控件868
36.3.5 使用BulletedList控件869
36.4 使用Repeater控件871
36.4.1 Repeater的标准用法871
36.4.2 使用Repeater模板872
36.4.3 以编程方式创建模板874
36.5 进行组合876
36.6 总结879
第37章 复杂数据控件880
37.1 准备示例项目880
37.1.1 准备脚本管理880
37.1.2 扩展CSS881
37.2 使用FormView控件881
37.2.1 定义代码隐藏类882
37.2.2 定义模板884
37.2.3 管理外部元素886
37.2.4 使用FormView控件编辑数据887
37.2.5 实现数据方法893
37.2.6 了解FormView事件895
37.3 使用ListView控件896
37.3.1 使用ListView的基本功能897
37.3.2 对数据分页902
37.3.3 了解ListView事件904
37.4 进行组合904
37.5 总结905
第38章 其他ASP.NET控件906
38.1 准备示例应用程序906
38.2 使用富UI控件906
38.2.1 富UI控件过于抽象908
38.2.2 富UI控件会修改元素的行为908
38.2.3 富UI控件依赖于C#事件909
38.2.4 将直接对富UI控件应用样式909
38.3 选择富UI控件910
38.4 使用其他控件918
38.4.1 使用Literal控件919
38.4.2 使用PlaceHolder控件920
38.4.3 使用MultiView控件922
38.5 进行组合923
38.6 总结925
第四部分 客户端开发928
第39章 管理脚本和样式928
39.1 准备示例项目928
39.2 了解脚本管理问题930
39.2.1 管理JavaScript文件版本930
39.2.2 管理库依赖关系931
39.2.3 管理简化931
39.3 使用捆绑包932
39.3.1 为捆绑包准备项目932
39.3.2 创建脚本捆绑包933
39.3.3 创建样式捆绑包936
39.4 使用捆绑优化937
39.4.1 使用本地优化938
39.4.2 使用内容传送网络942
39.5 确保库对控件可用944
39.6 进行组合946
39.7 总结948
第40章 Ajax和Web服务949
40.1 准备示例项目949
40.2 使用Web API创建Web服务951
40.2.1 了解目标951
40.2.2 创建Web API控制器952
40.2.3 创建路由配置953
40.2.4 测试Web服务954
40.2.5 实现控制器方法957
40.3 应用Web服务961
40.4 处理事件验证965
40.4.1 禁用事件验证967
40.4.2 替换控件968
40.5 进行组合969
40.6 总结971
第41章 客户端验证972
41.1 准备示例项目972
41.1.1 安装JavaScript程序包975
41.1.2 创建验证脚本捆绑包975
41.2 使用HTML5验证976
41.3 使用内置验证控件979
41.4 直接应用验证特性983
41.5 删除重复的验证策略986
41.6 进行组合990
41.6.1 更新Web服务990
41.6.2 更新模型对象990
41.6.3 创建JavaScript991
41.7 总结992
第42章 针对移动设备994
42.1 准备示例项目994
42.2 标识移动设备996
42.3 切换移动设备的母版页999
42.4 传送不同的Web窗体1002
42.4.1 安装和配置程序包1002
42.4.2 传送自定义内容1003
42.4.3 允许用户进行选择1004
42.5 进行组合1006
42.6 总结1008