体验AspNet MVC Preview5(1)-探索ViewEngine的原理并比较新老版

Asp.Net Mvc终于等来了新版本,这次仍然是Preview版.该版本中加入了不少新特性.特别是在ViewEngine的管理上.得到了很大的改进,不仅让用户可以更方便的更换ViewEngine,而且还可以在一个系统中使用多个ViewEngine的可能得到了实现,本文将探索新版和老版中viewengine的工作方式并进行对比,然后演示如何添加一个或者多个ViewEngine并让他们之间可以交互工作.

首先说明下P5对ViewEngine的改进,在老版本中,系统牵涉到ViewEngine管理的有两个接口,分别是: IViewEngine, IViewLocator,其中IVewEngine负责呈现View,IViewLocator负责对View的路径处理.同时,在Controller中对ViewEngine进行选择,让后在执行的时候将ViewEngine传递到ViewResult中,最后ViewResult使用ViewEngine来呈现ui.老版本的View部分大致类图如下:

它的执行流程大致如下:MVC框架根据Routing数据找到对应的Controller,而Controller中将根据IViewLocate来初始化一个ViewEngine(IViewLocater一般用来做路径选择)然后执行Controller的Execute方法,该方法间接通过ControllerActionInvoker来执行Action,每个Action都会返回一个ActionResult对象,然后,它执行ActionResult的ExecuteResult方法.系统有很多种ActionResult,当该ActionResult为ViewResult的时候,Controller会将自身的ViewEngine传递你这个ViewResult,在ViewResult中再最终使用ViewEngine来呈现数据.

时间: 2024-10-01 19:48:56

体验AspNet MVC Preview5(1)-探索ViewEngine的原理并比较新老版的相关文章

体验AspNet MVC Preview5(2)-实战自定义View及多ViewEngine协作

在上篇中,我们分别了解了两个系统对ViewEngine的处理,那么接下来我们来实战一下,使用asp.net mvc p5来添加自己的ViewEngine并同时使用多个ViewEngine来呈现数据. 在这个例子中,工程和文件结构如下图: 在Library的程序集中,我们新增两个ViewEngine,分表是LViewEngine和WebViewEngine,并新增LView来具体呈现数据,供LViewEngine使用,而WebViewEngine使用系统自带的WebFormView来呈现数据.En

体验Asp.Net Mvc Preview5(3)-探索ModelBinder的工作原理

在前面的两篇文章中,我们研究了Asp.Net Mvc Preview5的ViewEingine的改进,从本篇开始,我们开始研究Preview5中的新特性:ModelBinder. 首先我们来了解下什么是ModelBinder特性,这有什么用处,在以前的版本中,如果我们要在Action中获取数据,一般有三种方式,一是通过Action的参数,但是由于某些原因,这儿只能获取到简单类型的参数,比如int,string等,第二种方式是通过Request来获取,但是当数据较多的时候,这个方式实在太费劲了.三

AspNet MVC是什么?

 ASP.NET 是一个开发框架,用于通过 HTML.CSS.JavaScript 以及服务器脚本来构建网页和网站. MVC 是三个 ASP.NET 开发模型之一. MVC 是用于构建 web 应用程序的一种框架,使用 MVC (Model View Controller) 设计: Model(模型)表示应用程序核心(比如数据库记录列表) View(视图)对数据(数据库记录)进行显示 Controller(控制器)处理输入(写入数据库记录) MVC 模型同时提供对 HTML.CSS 以及 Jav

aspnet mvc 拦截器 怎么不执行action的代码

问题描述 aspnet mvc 拦截器 怎么不执行action的代码 public class CheckCertAttribute : ActionFilterAttribute { /// /// 验证证书是否有效 /// public bool ValidCert { get; set; } /// /// 解析证书 /// public bool ResolveCert { get; set; } public override void OnActionExecuting(Action

AspNet MVC与T4,我定制的视图模板

原文http://www.cnblogs.com/hbq-fczzw/archive/2011/11/11/2191614.html 一. 遇到的问题 文章开头部分想先说一下自己的困惑,在用AspNet MVC时,完成Action的编写,然后添加一个视图,这个时候弹出一个添加视图的选项窗口,如下: 很熟悉吧,继续上面说的,我添加一个视图,强类型的.继承母版页的视图,点击确定,mvc会为我们添加一些自动生成的代码,感觉很方便.呵呵,刚开始的时候还真方便一些,但也仅仅只是方便一些而已.当遇到以下情景

京冀两广电网络集团积极探索符合我国国情的三网融合新合作模式

7月5日上午,河北广电信息网络集团股份有限公司与北京歌华有线(600037,股吧)电视网络股份有限公司在石家庄市签署战略合作框架协议,双方决定以紧密合作伙伴方式,积极探索符合我国国情的三网融合新合作模式. 河北和北京具有天然的地缘合作优势,京冀两地政治.文化.经济长期紧密联系.河北广电信息网络集团股份有限公司是经省政府批准成立的省属国有大型文化企业,主营全省有线电视传输基本业务和付费电视.高清电视.数据宽带.视频传输等增值业务.北京歌华有线电视网络股份有限公司是国内有线电视行业的领军企业,不仅建

抢先支持Passbook 新iPhone版大众点评体验

新iPhone版大众点评体验前言:作为国内使用率最高的本地生活消费平台之一,大众点评iOS客户端想必已经是众多iPhone用户必备的一款App.日前,大众点评iOS客户端更新了5.3.1版本,从版本命名中我们可以看到这并不是一次大规模的更新,其更多的意义还是在于优化和改进.不过从其官方说明以及测试过程中的实际体验来看,本次更新要算是小更新也有大提升了.新iPhone版大众点评体验在实际体验前,我们先来了解一下新版本中到底哪些地方有了变化,这一点大众点评官方已经给了更新说明.大众点评V5.3.1(

体验Asp.Net Mvc Preview5(4)-实战ModelBinder,将Action参数实体化

在上篇中.我们分析了解了ModelBinder而本文将在实例中添加自己的ModelBinder,以便获得我们期望中的效果.本次我们通过一个简单的Demo来对全站的ModelBinder做一个解决方案. 首先给出工程文件图: 注意一点,本例中,我的目标是给整站的Entity对象实现一个通用的,可扩展的ModelBinder引擎.由于我们要让实体对象和url字符串之间转换,为了方便,可以定义相应的方法来实现,因此定义了IEntity接口,该接口定义如下: 解释下,Fill方法是将对应的字符串转换成对

同城体验购物网-O2O模式探索--原创

全国现在各类知名大型电子商务平台约100个左右正在发展及运营的约1000个以上. 基本各行各业都有.针对各种用户群体的都有.所以现在做电子商务不能只依赖平台.而要拓展聚集人气的新模式探索资源整合新方向. 还有很多重点内容.有需要交流的朋友加我Q89731255 一.同城电商资源整合模式: O2O模式   O2P模式: B2B模式(厂商--厂商) 例子:阿里巴巴.慧聪.中化.环球资源等国内外约30家成熟平台. B2C模式(厂商--经销商--电商平台--消费者) 例子:京东.当当.卓越等约有10成熟