ASP.NET MVC4框架揭秘,针对最新版本的ASP.NET MVC 4,深入剖析底层框架从请求接收到响应回复的整个处理流程(包括URL路由、Controller的激活、Model元数据的解析、Model的绑定、Model的验证、Action的执行、View的呈现和ASP.NET Web API等),并在此基础上指导读者如何通过对ASP.NET MVC框架本身的扩展解决应用开发中的实际问题。 ASP.NET MVC4框架揭秘,是让处于ASP.NETMVC第一层次的读者快速进入第二和第三层次的书。ASP.NET MVC功能强大,它提供了一种全新的编程方式,使我们可以将MVC模式很自然地融入动态网站的开发之中。由它带来的对关注点清晰分离和对HTML的细粒度控制使我们真正体会到了敏捷开发的乐趣。借助于ASP.NET MVc提供的众多特性,不但可以使我们在复杂应用中灵活地采用TDD(测试驱动开发)的梦想变成现实,还能让我们的应用尽可能地拥抱最新的Web标准。
目录
第1章ASP.NET+MVC 1.1传统MVC模式 1.1.1自治视图 1.1.2什么是MVC模式 1.2MVC的变体 1.2.1MVP 1.2.2Model2 1.2.3ASP.NETMVC与Model23 1.3IIS/ASP.NET管道 1.3.1IIS5.x与ASP.NET 1.3.2IIS6.0与ASP.NET 1.3.3IIS7.0与ASP.NET 1.3.4ASP.NET管道 1.4ASP.NETMVC是如何运行的 1.4.1建立在“迷你版”ASP.NETMVC上的Web应用 1.4.2URL路由 1.4.3Controller的激活 1.4.4Action的执行 本章小结 第2章URL路由 2.1ASP.NET路由系统 2.1.1请求URL与物理文件的分离 2.1.2实例演示:通过URL路由实现请求地址与.aspx页面的映射(S201) 2.1.3Route与RouteTable 2.1.4路由映射 2.1.5根据路由规则生成URL 2.2ASP.NETMVC扩展 2.2.1路由映射 2.2.2实例演示:注册路由映射与查看路由信息(S208) 2.2.3缺省URL参数 2.2.4基于Area的路由映射 2.2.5链接和URL的生成 2.3动态HttpHandler映射 2.3.1UrlRoutingModule 2.3.2PageRouteHandler与MvcRouteHandler 2.3.3ASP.NET路由系统扩展 本章小结 第3章Controller的激活 3.1总体设计 3.1.1Controller 3.1.2ControllerFactory 3.1.3ControllerBuilder 3.1.4Controller的激活与URL路由 3.2默认实现 3.2.1Controller类型的解析 3.2.2Controller类型的缓存 3.2.3Controller的释放和会话状态行为的控制 3.3IoC的应用 3.3.1从Unity来认识IoC 3.3.2Controller与Model的分离 3.3.3基于IoC的ControllerFactory 3.3.4基于IoC的ControllerActivator 3.3.5基于IoC的DependencyResolver 本章小结 第4章Model元数据的解析 4.1Model元数据及其定制 4.1.1Model元数据层次化结构 4.1.2基本Model元数据信息 4.1.3Model元数据的定制 4.1.4IMetadataAware接口 4.2Model元数据与Model模板 4.2.1实例演示:通过模板将布尔值显示为RadioButton(S409) 4.2.2预定义模板 4.2.3DataTypeName与模板名称 4.2.4模板的获取与执行 4.2.5实例演示:通过定制Model元数据和自定义模板实现预定义列表的呈现(S412) 4.3Model元数据的提供机制 4.3.1再谈ModelMetadata 4.3.2ModelMetadataProvider 4.3.3Model元数据提供系统的扩展 本章小结 第5章Model的绑定 5.1ControllerDescriptor、ActionDescriptor与ParameterDescriptor 5.1.1ControllerDescriptor 5.1.2ActionDescriptor 5.1.3ParameterDescriptor 5.2ValueProvider 5.2.1NameValueCollectionValueProvider 5.2.2DictionaryValueProvider 5.2.3ValueProviderFactory 5.2.4ValueProviderFactories 5.3ModelBinder 5.3.1ModelBinder与ModelBinderProvider 5.3.2ModelState与Model绑定 5.3.3ModelBindingContext的创建 5.4Model绑定的默认实现 5.4.1简单类型 5.4.2复杂类型 5.4.3数组 5.4.4集合 5.4.5字典 本章小结 第6章Model的验证 6.1ModelValidator与ModelValidatorProvider 6.1.1ModelValidator 6.1.2ModelValidatorProvider 6.1.3ModelValidatorProviders 6.2Model绑定与验证 6.2.1ModelState 6.2.2验证消息的呈现 6.2.3Model绑定中的验证 6.3基于数据注解特性的Model验证 6.3.1ValidationAttribute特性 6.3.2DataAnnotationsModelValidator 6.3.3DataAnnotationsModelValidatorProvider 6.3.4将ValidationAttribute应用到参数上 6.3.5一种Model类型,多种验证规则 6.4客户端验证 6.4.1jQuery验证 6.4.2基于jQuery的Model验证 6.4.3自定义验证 本章小结 第7章Action的执行 7.1异步Action的定义 7.1.1基于线程池的请求处理机制 7.1.2两种异步Action方法的定义 7.1.3AsyncManager 7.2Action方法的执行 7.2.1MvcHandler对请求的处理 7.2.2Controller的执行 7.2.3ActionInvoker的执行 7.2.4ControllerDescriptor的同步与异步 7.2.5ActionDescriptor的执行 7.3筛选器的执行 7.3.1Filter及其提供机制 7.3.2AuthorizationFilter 7.3.3ActionFilter 7.3.4ExceptionFilter 7.3.5实例演示:集成EntLib实现自动化异常处理(S713,S714,S715) 7.3.6ResultFilter 本章小结 第8章View的呈现 8.1ActionResult 8.1.1EmptyResult 8.1.2ContentResult 8.1.3FileResult 8.1.4JavaScriptResult 8.1.5JsonResult 8.1.6HttpStatusCodeResult 8.1.7RedirectResult/RedirectToRouteResult 8.2ViewResult与ViewEngine 8.2.1View引擎中的View 8.2.2ViewEngine 8.2.3ViewResult的执行 8.3Razor引擎 8.3.1View的编译原理 8.3.2WebViewPage与WebViewPage<TModel> 8.3.3RazorView 8.3.4RazorViewEngine 本章小结 第9章ASP.NETWebAPI 9.1Web、REST与WebAPI 9.1.1Web如此简单 9.1.2REST是什么 9.1.3ASP.NETWebAPI 9.2服务端管道 9.2.1ASP.NETWebAPI管道式设计 9.2.2HttpMessageHandler 9.2.3HttpServer 9.2.4实例演示:自定义HttpMessageHandler实现HTTP方法重写(S903) 9.3HttpControllerDispatcher 9.3.1HttpController的激活 9.3.2HttpController的执行 9.3.3Action的选择 9.3.4Model元数据的解析 9.3.5Action参数绑定 9.3.6Model验证 9.3.7Action的执行与结果的响应 9.4WebAPI的调用和自我寄宿 9.4.1HttpClient 9.4.2HttpSelfHostServer 本章小结 第10章案例实践 10.1功能性简介 10.1.1商品列表的呈现 10.1.2定购商品 10.1.3登录与错误页面 10.2设计概述 10.2.1Controller—Service—Repository 10.2.2IoC的应用 10.2.3AOP的应用 10.2.4异常处理 10.3编程实现 10.3.1数据表的创建 10.3.2Repository 10.3.3Service 10.3.4路由注册和布局 10.3.5ProductController 10.3.6OrderController 10.3.7AccountController 本章小结 附录A实例列表 |