新書推薦: 
			  
			《 
			肖邦钢琴作品全集 第二辑 套装全4册 波兰国家版 原版引进 肖邦国际钢琴比赛推荐用书
			》 
			 售價:HK$ 
			1173
			 
			 
	
			  
			《 
			轻松读懂大唐风云三百年(全4册)
			》 
			 售價:HK$ 
			1219
			 
			 
	
			  
			《 
			成人口腔正畸学 第2版
			》 
			 售價:HK$ 
			3050
			 
			 
	
			  
			《 
			永恒——商周时代的艺术
			》 
			 售價:HK$ 
			806
			 
			 
	
			  
			《 
			幸福教室的密码:一位优秀班主任的行走与思考
			》 
			 售價:HK$ 
			306
			 
			 
	
			  
			《 
			牙齿磨损 第3版
			》 
			 售價:HK$ 
			1520
			 
			 
	
			  
			《 
			午夜时分的解放 1947印度独立与印巴分治实录  汗青堂丛书150
			》 
			 售價:HK$ 
			653
			 
			 
	
			  
			《 
			汉服怎么做
			》 
			 售價:HK$ 
			500
			 
			 
	
 
      | 
     
      
      
         
          | 編輯推薦: | 
         
         
          |  
            本书是ASP.NET领域公认的经典名著,最新版由三位世界顶级技术专家联袂创作。书中不仅清晰、透彻且全面讲述了ASP.NET的基础知识,更深入内幕,剖析了ASP.NET的内部机理,使你知其然,又知其所以然。对于系统所提供的各种特性,本书也客观地解释了其优缺点,使读者能够根据具体情况做出明智选择。更为难得的是,作者直面许多实战中的困难主题,给出了优雅的解决方案。所附C#编程实例设计精心,极富指导意义,可以很容易地应用于实际项目。这一版对原有章节进行了全面的修订、更新和改进,还简要介绍了针对移动设备开发的新特性。
           | 
         
       
      
      
      
      
         
          | 內容簡介: | 
         
         
           
            《精通ASP.NET 4.5第5版》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET 4.5的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。《精通ASP.NET 4.5第5版》还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。这一版对原有章节进行了全面修订和更新,还简要介绍了针对移动设备开发的新特性。
 《精通ASP.NET 4.5第5版》适合各层次ASP.NET程序开发人员阅读。
           | 
         
       
      
      
      
         
          | 關於作者: | 
         
         
           
            Adam Freeman 资深IT专家,曾在多家公司担任高级职位,退休前在一家国际银行担任CTO和COO,如今的他热爱写作和跑步。除本书外,还著有《HTML5权威指南》《精通jQuery》等书。
 
 
 Matthew MacDonald 世界顶尖的微软技术专家,微软MVP。他是Inside Visual Basic、ASP Today、Hardcore Visual Studio .NET等著名软件开发杂志的特约作者,还写作了多部脍炙人口的编程畅销书,本书为其代表作。
 
 
 Mario Szpuszta微软奥地利开发者和平台组架构师,有丰富的Web应用与安全软件开发和集成经验。他也是社区内非常活跃的技术专家,经常在各种顶级技术会议中发表演讲。除本书外,他还是名著Advanced .NET Remoting的作者。
           | 
         
       
      
      
      
         
          | 目錄: 
           | 
         
         
           
            目 录
 
 
 
 
 第一部分 入门
 
 
 
 
 第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.NET Framework概述 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章 使用jQuery 66
 
 
 4.1 创建示例项目 66
 
 
 4.1.1 在示例项目中添加jQuery 68
 
 
 4.1.2 在Web窗体中添加jQuery 69
 
 
 4.2 jQuery入门 70
 
 
 4.2.1 等待DOM 70
 
 
 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 Window 91
 
 
 5.3 使用Page Inspector和浏览器F12工具 92
 
 
 5.3.1 使用JavaScript Console 93
 
 
 5.3.2 使用网络监视器 94
 
 
 5.3.3 使用JavaScript Profiler 95
 
 
 5.4 使用NuGet 96
 
 
 5.5 使用Opera Mobile 98
 
 
 5.6 使用JavaScript库 98
 
 
 5.6.1 jQuery、jQuery UI和jQuery Mobile 99
 
 
 5.6.2 Knockout 99
 
 
 5.6.3 Modernizr 99
 
 
 5.6.4 requireJS 99
 
 
 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 Framework 108
 
 
 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链接和URL 159
 
 
 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 Azure 197
 
 
 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平台
 
 
 
 
 第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 使用cookie 413
 
 
 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 创建可删节URL 534
 
 
 23.4.3 创建长度可变的段 540
 
 
 23.5 路由段值模型绑定 542
 
 
 23.6 生成传出URL 544
 
 
 23.7 进行组合 546
 
 
 23.7.1 生成诊断HTML 547
 
 
 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 授权已路由的URL 597
 
 
 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
 
 
 
 
 第三部分 窗体和控件
 
 
 
 
 第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 了解控件ID 733
 
 
 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 扩展CSS 881
 
 
 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
 
 
 
 
 第四部分 客户端开发
 
 
 
 
 第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 创建JavaScript 991
 
 
 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
           | 
         
       
      
      
        
     |