ASP.NET MVC Controller总体设计

评论(0)浏览(97)分类:asp.net-mvc
ASP.NET MVC Controller总体设计  将整个ASP.NET MVC框架划分为若干个子系统,那么针对请求上下文激活目标Controller对象的子系统被我们成为Controller激活系统。在正式讨论 Controller对象具体是如何被创建爱之前,我们先来看看Controller激活系统在ASP.NET MVC中的总体设计,了解一下组成该子系统的一些基本的组件,以及它们对应的接口或者抽象类是什么。一、Controller  ..

ASP.NET MVC集成EntLib异常处理实现

评论(1)浏览(95)分类:asp.net-mvc
ASP.NET MVC集成EntLib异常处理实现  通过《ASP.NET MVC集成EntLib异常处理实例》的实演示可以看出我们通过扩展实现的自动异常处理机制能够利用EntLib的EHAB根据执行的一场处理策略对某个Action方法执行过程中抛出的异常进行处理。对于处理后的结果,则按照如下的机制对请求进行响应。[源代码从这里下载]对于Ajax请求,直接创建一个用于封装被处理后异常的数据对象,并据此创建一..

ASP.NET MVC Model绑定ModelBinder

评论(0)浏览(94)分类:asp.net-mvc
ASP.NET MVC Model绑定ModelBinder  Model的绑定体现在从当前请求提取相应的数据绑定到目标Action方法的参数。通 过前面的介绍我们知道Action方法的参数通过ParameterDescriptor来描述,ParameterDescriptor的 BindingInfo属性表示的ParameterBindingInfo对象具有一个名为ModelBinder的组件用于完成针对当前参数的 Model绑定。ModelBinder可以看成是整个Model绑定系统的核心,我..

ASP.NET MVC Model验证-ModelValidator

评论(0)浏览(93)分类:asp.net-mvc
ASP.NET MVC Model验证-ModelValidator  为目标Action方法的执行绑定输入参数的Model绑定过程伴随着对Model 的验证。借助相应的验证特性,我们可以直接以声明的方式在Model类型上定义验证规则,这些规则将会作为Model元数据的一部分。具体在Model绑 定过程中,ModelBinder通过ValueProvider为Model对象的某个属性提供相应属性值之后,会根据定义在基于该属性的Model元 数据的验证规..

ASP.NET MVC ValueProvider值提供系统:DictionaryValueProvider

评论(0)浏览(93)分类:asp.net-mvc
ASP.NET MVC ValueProvider值提供系统:DictionaryValueProvider  NameValueCollectionValueProvider采用一个 NameValueCollection作为数据源,DictionnaryValueProvider的数据源类型自然就是一个 Dictionnary。NameValueCollection和Dictionnary都是一个键值对的集合,它们之间的不同之处在 NameValueCollection运行元素具有相同的Key,Dictionnary却要求元素的Key具有唯一性。一、DictionaryValueProvider..

ASP.NET MVC Action的执行

评论(0)浏览(91)分类:asp.net-mvc
ASP.NET MVC Action的执行  作为Controller基类ControllerBase的Execute方法的核心在于对Action方法的执行和作为方法返回的ActionResult的执行,两者的执行是通过一个叫做ActionInvoker的组件来完成的。一、ActionInvoker  同样为ActionInvoker定义了一个接口IActionInvoker。如下面的代码片断所示,该接口定义了一个唯一的方法 InvokeAction用于执行指定名称的Actio..

ASP.NET MVC Controller IoC应用[下篇]

评论(0)浏览(90)分类:asp.net-mvc
ASP.NET MVC Controller IoC应用[下篇]  [ASP.NET MVC Controller IoC应用[上篇] 除了通过自定义ControllerFactory的方式引入IoC之外,在使用默认DefaultControllerFactory情况下也可以通过 一些扩展使基于IoC的Controller激活成为可能。主要的方式就是自定义ControllerActivator和 DependencyResolver。四、ControllerActivator V.S. DependencyResolver  如下面的代码片断所示,..

ASP.NET MVC Model元数据定制

评论(0)浏览(87)分类:asp.net-mvc
ASP.NET MVC Model元数据定制  在《ASP.NET MVC Model元数据》 我们已经提到过了,Model元数据的定制是通过在作为Model的数据类型极其属性成员上应用相应的特性来实现,这些用于声明式元数据定义的特性大都定 义在System.ComponentModel.DataAnnotations.dll程序集中,程序集的名称同时也是对应的命名空间名称,所以我们 可以它们为数据注解特性(Data Annotation Attribu..

ASP.NET MVC的筛选器

评论(0)浏览(80)分类:asp.net-mvc
ASP.NET MVC的筛选器  在ActionInvoker对Action的执行过程中,除了通过利用 ActionDescriptor对Action方法的执行,以及之前进行的Model绑定与验证之外,还具有一个重要的工作,那就是对相关筛选器 (Filter)的执行。ASP.NET MVC的筛选器是一种基于AOP(面向方面编程)的设计,我们将一些非业务的逻辑实现在相应的筛选器中,然后以一种横切(Crosscutting)的方 式..