aspnetmvc自学手册内容摘要:

..................................................... 36 第十五讲、 Preview 5 中的视图引擎 ................................................................................ 37 Partial View ..................................................................................................... 37 Preview 5 中视图引擎的改变 ........................................................................... 38 IViewEngine 接口 ............................................................................................ 38 VirtualPathProviderViewEngine ......................................................................... 38 IView .............................................................................................................. 39 视图引擎的使用 ............................................................................................ 40 CompositeViewEngine ...................................................................................... 40 第一讲、 MVC 与 ASPNET MVC 框架 核心内容: .MVC模式 . MVC与三层架构模式 MVC与三层架构模式 . WebForms vs MVC .其他 概述 .MVC 模式是上世纪 70 年代末由 Trygve Reenskaug 提出,运用于 Smalltalk 平台上。 .表现模式( UI / Presentation Pattern) .三种角色 – Model:用于存储数据的组件(与领域模型概念不同)。 – View:根据 Model 数据进行内容展示的组件 – Controller:接受并处理用户指令(操作 Model)选择一个 View 并输出内容个 View 并输出内容。 三者直接的协作: 图 View Controller Model 三者直接的协作 两种分离: View 和数据( Model)分离 – 能够为相同的 Model 开发不同的 View 进行展 – 分离可视与不可视得组件,能够对 Model 进 独立测试(只有 View 到 Model 的单向引用 MVC 的变种 . Observer 模式 . MVP 模式 MVC 与三层架构类似。 – View – UI Layery Model DA Layer .其实不然 – MVC 是表现模式( Presentation Pattern) – 三层架构是架构模式( Architecture Pattern) – 没有太多可比性 MVC 与三层架构 图 MVC 与三层构架 WebForms vs MVC WebForms 的优点 – 将 Web 开发抽象成一个组件模型 – 使用方便,入门容易 – 使控件产业大大加强 . WebForms 的缺点 – 封装太强 —— 这还是 Web 开发吗。 – 入门容易 ,用好难 – 不易进行单元测试,前后台不易配合 .不过 WebForms 也在成长 .不过 WebForms 也在成长 MVC 的优势 .直接, Web 开发就是 Web 开发 .易于对界面逻辑进行单元测试易于对界面逻辑进行单元测试 – Design for testability .易于后台与前台开发人员的配合 . MVC 是在 平台下开发 Web 应用程序的另一选择,并非为了取代 WebForms。 MVC 的特点 .一切都是可替换的 – ViewEngineg– Action Filter .一切都是可测试的 .公开源代码 – 可以修改 不可重新发布不可重新发布 第二讲、一个简单的 MVC 核心内容: . MVC 的组件协作 .构建一个 ASP NET MVC 应用程序构建个 MVC 应用程序 .使用 LINQ to SQL 构建 Model MVC 的组件协作 图 mvc 的组件协作 . URL Routing . Controlleramp。 Action Executing . View URL Routing . MVC 使用 URL 进行驱动,根据程序中制定的规则从 URL 中:根据程序中制定的规则从 URL 中: – 确定 Action 名 – 生成其余各种参数 {controller}/{action}/{year}/{month}/{day}/{id} Article/Show/2020/4/10/13456 Controlleramp。 Action .根据每一次 Request 的 URL 都可以确定: – Controller(类) – Action(方法) . Action 中执行表现逻辑 — 操作 Model,获取数据,选择 View, etc. . Action 执行之后将返回一个 ActionResult 使用 View 生成 HTML – 页面跳转 – etc. 生成 View . ViewEngine 可替换 .默认使用 aspx ascx master 默认使用 aspx, ascx, master MvcContrib 提供了额外 4 种 ViewEngine – 创建 MVC 应用程序 .目前 MVC 仍处于 Preview 阶段 .官方发布的最新预览版为 Preview 2 .4/16 官方发布了一个代码快照 – 仍在开发过程中,并非 Preview 3 – 并非官方每日构建的版本库 – 可在 CodePlex 下载到源代码及项目模板 codeplex /asp MVC 的重要理念 MVC 的重要理念 .约定胜于配置 – Convention over – 扩展性 – 复杂性 .很多时候约定依旧足够了 XxxControllerXxxController – View\ControllerName\ LINQ to SQL 简述 . .NET Framework 自带的 ORM 框架 – 轻量 – 适合数据操作不会过于复杂的项目 .可以自动数据表对应的实体类 .集成 LINQ,易于使用 DEMO 一个简单的 MVC 应用程序 (使用 Nth i d 数据库)(使用 Northwind 数据库) 第三 讲 、 URL Routing 核心内容: . URL Routing .自定义 URL Routing 规则自定义 URL Routing 规则 .使用 URL Routing Debugger 检验规则 URL Routing 组件 . .独立于 ASP NET MVC 框架的组件,可用于独立于 MVC 框架的组件,可用于任意 应用程序 . MVC 框架开放源代码 . URL Routing 组件目前并不开放 Routing .将 URL 转换为 RouteData 等数据 在 MVC 中的作用 . MVC 使用 URL 进行驱动 .根据程序中制定的规则从 URL 中:根据程序中制定的规则从 URL 中: – 确定 Controller 名 – 确定 Action 名 – 生成其余各种参数 Routing 组件的使用 .配置 UrlRoutingModule .在 Application Start 时添加规则 – 应用程序接收到第一个请求前执行 .能够随时添加或删除规则 – 锁 .规则的顺序非常重要 .是否在找到物理文件的情况下继续映射 – RouteExistingFiles 属性 Route Class . URL – {controller}/{action}/{id}{ } { } { } . Defaults – action=Index , id= . Constraints – year=\d{4}, Method=“POST . Data Tokens . Data Tokens . Route Handler URL Routing Debugger .使用 URL Routing Debugger 可以快速检验一个 URL 是否被某个规则采纳 – 今后课程也会提到对 Routing 进行单元测试或测试驱动开发 . DEMO URL Routing 规则配置 Routing 与 URL Rewrite 的区别 . URL Rewrite:改变程序处理的 URL . URL Route:根据 URL 的规则选择执行 .两者执行机制不同 .在某些情况下可以产 生同样结果 . URL Route 更像是一种基础支持 . URL Route 更像是种基础支持 – 适合用于开发基于 架构的新框架 第四讲、 Controller amp。 Action 核心内容: . Controller . Action . ActionResult Web 的要求 .继承 类 .以 Controller 结尾 Xyz . XyzController 的 名称即为 Xyz – 约定胜于配置 . MVC 框架会在 Web 应用程序所引用的所有程序集范围内查找 Controller – 理论上不必写在 Web 应用程序内部 Controller 的选择规则 .根据 URL Routing 提取后的数据选择 – 如果没有对应的规则,则如普通 应用 程序般执行 .如果没有 controller,则抛出异常 – 一般为 MVC 配置的 URL Routing 规则 都会指定 controller Action 的要求 .必须是一个公有方法 .必须返回 ActionResult 类型必须返回 ActionResult 类型 .必须是实例方法 .不能是范型方法 .没有标注 NonActionAttribute. .不能被重载( overload) Action 的选择规则 .根据 URL Routing 提取后的数据进行选择 .如果没有指定 Action 那么执行标注了 NonActionAttribute 的 ”Action”. .如果指定了一个不存在的 Action,或者没有指定 Action 并且 Controller 中没有标注 NonActionAttribute 的“ Action”,则调用 Controller 的 HandleUnknownAction 方法 – 默认抛出异常 – 可覆盖( override) ActionResult .一个抽象类,表示 Action 的执行结果 – 框架已内置多种 ActionResult – 可扩展 ASP NET MVC Ati R l. MVC 框架将在获得 ActionResult 之后执行其 Execute 方法 .在 MVC Preview 2 及以前的设计中并不存在 ActionResult – 可测试性 各种 ActionResult . ActionRedirectResult:跳转到某个 Action . HttpRedirectResult:跳转到任意地址 . RenderViewResult:生成内容 . EmptyResult:什么都不做 DEMO 1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。