第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章 案例实践

最新文章

  1. WPF学习之路(十二)控件(Content控件)
  2. RockWare RockWorks的Ollydbg调试过程及注册机(破解)思路
  3. Java集合框架(四)
  4. 使用 mina 传输大字节数组
  5. [原创整理]这些术语你知道吗?(Web篇)
  6. unix您不能使用crontab设置运营计划
  7. C#中int32 的有效值范围
  8. 在 Linux 环境下报错 java.lang.reflect.InvocationTargetException
  9. 201521123060《Java程序设计》第2周学习总结
  10. Go Deeper
  11. hdu 2669 Romantic 扩展欧几里得
  12. Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.5.6.RELEASE:repackage failed: Unable to find main class
  13. Django 2.0 学习(01):Django初识与安装
  14. Monte Carlo Method(蒙特&#183;卡罗方法)
  15. Android智能指针SP WP使用方法介绍
  16. raid1 raid2 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘
  17. ffmpeg安装
  18. python:用wordcloud生成一个文本的词云
  19. Data - 关于大数据
  20. 主机网络ping: unknown host baidu.com问题解决

热门文章

  1. Programming Languages: Application and Interpretation
  2. C语言 字符串处理函数 转自 http://blog.chinaunix.net/uid-25885064-id-3175049.html
  3. hackerrank Week of Code 31
  4. python 面向对象 初始化
  5. 常见的加密和解密算法—BASE64
  6. Hive中创建结构体、数组以及map
  7. SqlServer快速获得表总记录数(大数据量)
  8. Eutils用法总结
  9. MVC框架介绍
  10. 我的Linux之路——windows10用WMware安装CentOS7.5 虚拟机详细步骤