1.框架对于多请求的线程处理
请求<->线程 每个请求至少包含路由,控制器,操作
2.ASP.Net 模式匹配
3.重定向 Redirect,RedirectToAction,RedirectToRoute,永久重定向
4.请求的值传递 Request对象 模型绑定
5.View查找惯例
Views->控制器文件夹名->Action文件名
Views->Shared
6.@Html.****返回值类型System.Web.Mvc.MvcHtmlString
代码段->返回值给视图;代码块->不需要返回返回值,视图会忽略
7.部分视图
Html.Partial 加载, Render.Section
8.数据传递
ViewBag->ViewData包装成一个dynamic动态对象
dynamic类型是.NET 4.0引入的新类型,与var不同,不会在编译时检查类型
viewData字典行为--名称取值;提供Model属性
强类型视图-Razor指定Model类型 @model ****
9.视图渲染帮助类
HtmlHelper-生成html代码、UrlHelper(元素中的链接属性)-生成url地址
10.权限控制和身份验证
11.EntityFramework数据访问框架
System.Data.Entity.DbContext
12.输入参数的验证
ModelState 数据标注API 自定义验证标记属性 Html.ValidationMessage(string modelName)
13.Ajax异步请求 XmlHttpRequest
14.设计模式
LSP里氏替换原则:对所有对象(实现同一个接口或者继承同一个基类)是一样的,不需要在处理对象时判断对象的实际类型,例如提供的方法有权限判断的,此时应该采用接口隔离原则进行设计,将需要验证权限的函数放在一个接口中,不需要验证权限的函数放在另一个接口中。
控制反转--分离执行特定问题处理代码(依赖注入和服务定位) IOC容器--注意性能和错误处理
依赖注入:依赖项定义为属性,在初始化设置值。
ASP.NET MVC 默认的依赖解析器--IDependencyResolver,DependencyResolver(System.Web.Mvc.DependencyResolver)
15.部分视图不包含外围布局,所以要包含一些依赖,如CSS和JS。要直接在部分视图中进行引用,在布局视图中的引用无效。
16.同一个控制器,同一个方法,判断请求类型是否是Ajax请求来决定返回View或者ParitialView,Json。