asp.net mvc 5框架揭秘(文摘)
第1章 asp.net + mvc
1.1.2 什么是MVC模式:
model:对应用状态和业务功能的封装,同时包含数据和行为的领域模型。
view:实现可视化界面的呈现并捕捉最终用户的交互操作。
controller:完成相应的UI逻辑。
三层架构和MVC:

----------------------------------------------------------------------------------
1.2.1
mvp:适用于基于事件驱动的应用框架,比如:asp.net web forms和windows forms。
1.pv passive view ,被动的view,在iview中定义属性,UI处理逻辑全部在P上
2.sc:(例子S101) iview中只有方法和事件,没有属性
1.2.2 model2
1.2.3 asp.net mvc 与model2
asp.net mvc 的model仅仅是绑定到view上的数据而已,它和mvc模式中的M不是一回事。view model
httpmodule:对HTTP请求进行拦截以实现对目标controller和action名称的解析。
httphandler:对目标controller的激活和action方法的执行。
1.3 iis与asp.net管道
IIS 5.x 与 ASP.NET ,IIS 6.0 与 ASP.NET ,IIS 7.0 与 ASP.NET
       
       
1.4 asp.net mvc 扩展asp.net 实现的,整个框架通过自定义的httpmodule和httphandler建立起来的
路由 : IHttpModule -> UrlRoutingModule -> OnPostResolveRequestCache -> GetRouteData
Controller的激活:IHttpHandler -> MvcHandler -> ProcessRequest()
Action的执行:IActionInvoker -> IModelBinder ->ControllerActionInvoker -> ActionExecutor -> ActionResult

第2章 路由
2.1.1 请求地址和物理文件的分离,建立在asp.net上。
protected void Application_Start(object sender, EventArgs e)
{
var defaults = new RouteValueDictionary { { "name", "*" }, { "id", "*" } };
RouteTable.Routes.MapPageRoute("", "employees/{name}/{id}","~/default.aspx", true, defaults);
}
 <asp:HyperLinkField HeaderText="姓名" DataTextField="Name" DataNavigateUrlFields="Name,Id" DataNavigateUrlFormatString="~/employees/{0}/{1}" />
                       
RouteBase,RouteData,VirtualPathData,Route,RouteTable,线程安全(GetReadLock(),GetWriteLock())
2.1.4 路由注册
模版,约束,默认值
protected void Application_Start(object sender, EventArgs e)
{
var defaults = new RouteValueDictionary { { "areacode", "" }, { "days", }};
var constaints = new RouteValueDictionary { { "areacode", @"0\d{2,3}" }, { "days", @"[1-3]" } };
var dataTokens = new RouteValueDictionary { { "defaultCity", "BeiJing" }, { "defaultDays", } }; RouteTable.Routes.MapPageRoute("default", "{areacode}/{days}","~/weather.aspx", false, defaults, constaints, dataTokens);
}
1.变量默认值,
2.约束,
3.对现有物理文件的路由
4.注册路由忽略地址
5.直接添加路由独享.
2.2 asp.net mvc路由
RouteTable.Routes.MapRoute("default", "{areacode}/{days}",defaults, constraints, namespaces);
对asp.net 的路由系统进行了扩展,在system.web.mvc下
名为 htmlhelper和urlhelper的帮助类
第3章 Controller的激活
System.Web.Mvc 下的 Controller
对象的激活最终通过注册的ControllerFactory来完成
Controller类型的缓存
Controller的释放和会话状态行为的控制
第4章 model元数据的解析
model指的是 view model ,表示呈现的view中的数据对象
ModelMetadata
model元数据的定制:(特性)
1.UIHint
2.HiddenInput,scaffoldcolumn
3.DataType,DisplayFormat
4.Editable,ReadOnly
5.Display,DisplayName
6.required
4.2 模板化数据的呈现
4.2.2 预定义模板
4.2.3 针对数据类型的模板
第5章 3个重要的描述对象(元数据)
controllerdescription,
actiondescription
parameterdescription
第6章 model的绑定(一)
6.1 源数据的提供
valueProvider的对象为MODEL绑定提供原始数据
6.2 MODELBinder
第7章 model的绑定(二)
绑定简单参数,复杂参数,集合,字典
第8章 model的验证(一)
modelerror,
validation特性
第9章 model的验证(二)
validation特性详解
第10章 action方法的执行
表达式树的方式执行,并不是通过反射
第11章 view的呈现
ActionResult
ViewResult
razor引擎
第12章 过滤器
IActionFilter,
IAuthenticationFilter,
IAuthorizationFilter,
IExceptionFilter,
IResultFilter
第13章 特性路由
第14章 案例实践
asp.net mvc 5框架揭秘(文摘)的更多相关文章
- 感恩回馈,新鲜出炉的《ASP.NET MVC 5框架揭秘》免费赠送
		
上次针对<ASP.NET Web API 2框架揭秘>举办了一次评论赠书活动,很多人问我相同的活动要不要针对<ASP.NET MVC 5框架揭秘>(阅读样章)再来一次,为此我向 ...
 - 《ASP.NET MVC 5框架揭秘》样章发布
		
今天算是新作<ASP.NET MVC 5框架揭秘>正式上架销售的日子(目前本书在互动网已经到货),为了让更多适合的朋友们能够阅读此书,同时也避免让不适合的读者误买此书,特将此书的样章发布出 ...
 - 新作《ASP.NET MVC 5框架揭秘》正式出版
		
ASP.NET MVC是一个建立在ASP.NET平台上基于MVC模式的Web开发框架,它提供了一种与Web Form完全不同的开发方式.ASP.NET Web Form借鉴了Windows Form基 ...
 - 《ASP.NET MVC 5 框架揭秘》
		
<ASP.NET MVC 5 框架揭秘> 基本信息 作者: 蒋金楠 出版社:电子工业出版社 ISBN:9787121237812 上架时间:2014-8-1 出版日期:2014 年8月 开 ...
 - 源码的说明 ASP.NET MVC 5框架揭秘.zip
		
第1章 S101 MVP(SC)模式中Presenter与View之间的交互 S102 迷你版的ASP.NET MVC框架 第2章 S201 通过路由实现请求地址与.aspx页面的映射 S202 基本 ...
 - ASP.NET MVC 4框架揭秘(微软6任MVP,高级软件顾问蒋金楠新作)
		
http://www.cnblogs.com/artech/
 - 《ASP.NET Core 3框架揭秘》读者群,欢迎加入
		
作为一个17年的.NET开发者,我对一件事特别不能理解:我们的计算机图书市场充斥着一系列介绍ASP.NET Web Forms.ASP.NET MVC.ASP.NET Web API的书籍,但是却找不 ...
 - ASP.NET Web API框架揭秘:路由系统的几个核心类型
		
ASP.NET Web API框架揭秘:路由系统的几个核心类型 虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分 ...
 - [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]
		
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...
 
随机推荐
- lvds cable信号
			
http://forums.bit-tech.net/showthread.php?t=208616
 - bzoj 3730 震波——动态点分治+树状数组
			
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3730 查询一个点可以转化为查询点分树上自己到根的路径上每个点对应范围答案.可用树状数组 f ...
 - 阿里云 搭建Git服务器
			
1. 服务端安装git, ssh, 客户端安装git sudo apt-get install git sudo apt-get install ssh 2. 服务单创建用户server sudo a ...
 - thinkphp配置rewrite模式访问时不生效 出现No input file specified解决方法
			
使用thinkphp配置rewire模式的路径访问网站时, 直接复制官网的.htaccess文件的代码复制过去 1 2 3 4 5 6 <IfModule mod_rewrite.c> ...
 - ruby里面module和class的区别
			
一句话概括,就是 class可以实例化 module不可以 别的都一样 关于继承的一点区别 class是使用<作为继承的关键字,只支持单继承 module是使用include来做实例继承(实例化 ...
 - Django将.csv文件(excel文件)显示到网页上
			
今天,我成功将项目要导入的测试数据导入并呈现了,虽然还不是很完美,但我之后仍会继续改进. 1.首先在主页面上加一个超链接按钮: 其它的不需要管,其它是我的另一个项目,没什么大用的 2.之后配置URL: ...
 - Thinkphp 联表查询 表名要全名
			
我有2个表 表1. 表2 已知表2的user_id 查询满足 表2.wb_id=表1.id 表1的内容 最佳答案 i 2013年11月15日 $result = M()->table(array ...
 - Hive 安装操作
			
本篇为安装篇较简单: 前提:1: 安装了hadoop-1.0.4(1.0.3也可以)正常运行2:安装了hbase-0.94.3, 正常运行 接下来,安装Hive,基于已经安装好的hadoop,步骤如下 ...
 - [失败]SystemTap和火焰图(Flame Graph)
			
本文参考http://blog.51cto.com/xuclv/1184517 SystemTap简介: SystemTap provides free software (GPL) infrastr ...
 - C++ - 常用的标准库函数
			
写在前面 C++是一门博大精深的语言,也是最难学的一门编程语言,每一位励志学好C++的程序员都需要从基本功开始,稳扎稳打. 自从1998年C++ standard定案以后,C++程序库便有了大幅扩 ...