MVC总结

MVC模式中包含模型、视图和控制器三部分。
 浏览器请求控制器 模型视图 显示结果
模型是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象。
视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。
控制部件是处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。
Asp.net MVC框架是微软对MVC模式的实现
创建Asp.net MVC应用程序的步骤:创建模型类、创建控制器类、创建视图文件、测试和运行。
Asp.net MVC应用程序的执行过程:创建RouteTable、URL路由、执行MvcHandle、执行Controller、执行View()方法

 

 

在基于 ASP.NET MVC 的网站中, URL 不再是文件目录中的一个文件, 而是一个说明有关 URL 路由的字符串,开发者可以自定义该字符串的格式, 以便于用户理解相关页面的功能
URL 路由可以自定义路由规则和添加参数约束
控制器动作总是会返回一个 ActionResult 实例, ActionResult 确定返回到浏览器的响应类型
ViewResult 返回一个 ASP.NET MVC 视图, RedirectResult 表示重定向至另一个控制器动作或者 URL, ContentResult 表示向浏览器返回文本内容, JsonResult 返回一个 JSON 对象, FileResult 表示一个即将被下载的文件
控制动作方法的调用方式时, 需要使用 AcceptVerbsAttribute、 ActionNameAttribute 和ActionMethodSelectorAttribute3个特性来修饰方法

 

视图是 ASP.NET MVC 呈现给用户的交互界面
在 ASP.NET MVC 中, 可以创建类型化视图 (强类型) 和非类型化视图 (弱类型)
在非类型化视图中访问控制器传递的数据使用 ViewData。在类型化视图中,使用 Model 属性访问控制器传递的数据
阻止 JavaScript 注入攻击的方法: ① 在视图中使用 Html.Encode 方法进行编码;② 在控制器中使用 Server.HtmlEncode 方法进行编码
在非类型化视图中访问控制器传递的数据使用 ViewData。在类型化视图中,使用 Model 属性访问控制器传递的数据
HtmlHelper 类位于命令 System.Web.Mvc.Html 中,主要由 7 个静态类组成
创建自定义 HtmlHelper 是实现 HtmlHelper 类的扩展方法, 可以使用 TagBuilder类和HtmlTextWriter 类创建


控制器与视图之间传递数据包括两个方向
将控制器设置的数据传递到视图中,在视图中显示数据
将视图中的数据传递到控制器中, 在控制器中读取、处理数据
从控制器向视图传递数据可以使用 ViewData、 TempData 和 Model3 种方式
从视图向控制器提交数据可以使用 Request.Form、 FormCollection 和 ModelBinder3 种方式
可以使用绑定特性 (Bind Atrribute)的 Include、 Exclude 和 Prefix 属性控制绑定过程
ASP.NET MVC 框架中也可以使用母版页和用户控件, 为了便于访问, 将母版页和用户控件都保存在/Views/Shared 文件夹中
使用HtmlHelper的RenderPartial方法在视图中加载用户控件

 


Action过滤器是ASP.NET  MVC框架所提供的一个重要特性,通过各种内置的过滤器,开发者可以在执行控制器或则控制器内方法的前、后,添加一些必需的业务逻辑
OutputCache过滤器是在指定的时间内缓存controller action的输出
HandleError过滤器处理controller action发生错误的情况
直接继承ActionFilterAttribute类可以创建一个自定义Action过滤器,ActionFilterAttribute类实现了IActionFilter和IResultFilter接口,并且继承了Filter类
在ASP.NET MVC 应用程序中易测试时其中的优点之一。在单元测试中,主要测试控制器动作返回的视图、测试控制器动作返回的视图数据,以及测试一个控制器动作是否重定向到另一个控制器动作
将ASP.NET MVC应用程序发布到IIS上,需要对IIS做额外的配置。不同版本IIS和请求模式配置步骤不同

 

 

 

posted @ 2012-05-09 23:06  微笑de『MY』  阅读(367)  评论(0编辑  收藏  举报