下载此文档

MVC 20框架编程5属性篇.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
MVC 20框架编程5属性篇.doc全面探讨ASP. NET MVC 2. 0框架编程
—(5)属性篇
作者朱先忠
在本文中,我们将探讨ASP. NET MVC 2. 0框架编程中提供的属性支持特征,并将给出简 短的示例。
一、 简介
ASP. NET MVC框架可以看作是面向方面编程的一个重大转变。尽管面向方面编程(AOP) 已经出现一段时间了,但是对于ASP. NET开发平台来说还是较新的。面向方面编程的核心开 发思想之一就是,注入外部资源并使用属性来通知要运行的代码。该代码可以运行在定义该 属性的方法发生错误之前、之后或出错期间。
在本系列短文中,我将尽量适时向你解释Web表单和MVC之间的相互关系,以及它们在 行为上如何相似。但是,由于种种原因在不使用外部库的情况下,它们两者在下面这一点上 并不多大联系。
首先,一个MVC请求要调用控制器中定义的一个方法。在这个时候,控制器并不运行于 一个页面的生命周期内。一个单一的方法负责处理当前的请求。MVC框架知道什么时候请求 开始和结束,因此很容易在行为方法执行之前和之后运行某些特定代码。对于Web表单情况 却不是这样,它使用的是生命周期方法,并使用一个继承自Page的定制类实现。ASP. NET Web 窗体对于它的各种服务器控件暴露一个对象模型,你可以通过页面生命周期在各个不同点上 与这些控件进行交互。
其次,MVC框架提供了对核心平台的扩展点,允许你修改或控制代码的执行并确定在执 行期间应该发生什么事情。在Web表单情况下,框架隐藏了大量的细节。仅在ASP. NET 4. 0 中提供了一些扩展点对开发者开放。
二、 定义属性
属性应用于控制器的类定义中或者行为方法本身。下面清单1中给出的两种情况都是有 效的属性应用。
清单1—使用属性的两种情况示例
[SomeControllerAttrib]
Public class TestController
{
[SomeActionMethodAttrib]
public ActionResult ActionMethodToRun() { .. }
}
由属性本身来定义在哪里定义属性(,而不是MVC特定的功能)。 属性本身看起来如下所示:
清单2—属性定义举例
[AttributeUsage()]
public class SomeControllerAttribAttribute { }
一个属性能够指定一个自己的AttributeUsage属性,并列举出它认为有效的目标(可 以针对类,属性,方法等)。一个属性可以有自己的构造函数(属性的默认参数),或提供相 应的字段属性(properties)o如果一个字段属性具有setter方法,那么,在属性声明中可 以应用C#语法<PropertyName>二<Value>来定义一如果该字段属性在构造函数中没有get 和set方法的话。
三、 MVC编程中是如何使用属性的
有一个称为ControllerActioninvoker的类,由它负责调用控制器内创建的行为方法。 当浏览器通过路由向控制器和行为方法发出请求时,由这个控制器工厂负责查找到相应的控 制器并把这个行为调用者的一个实例指派给这个控制器来处理请求。这个行为调用者执

MVC 20框架编程5属性篇 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人蓝天
  • 文件大小90 KB
  • 时间2021-07-29