在这一节里,大家一同学习下mvc 2.0中的filter,简单的说,filter就是标记在action上的一些属性,来实现对action的控制。

mvc2.0中主要包括以下filter

1. Authorize

2.HandleError

3.RequireHttps

4.OutputCache

1. 首先说下Authorize

Authorize主要用来实现用户的授权与访问。

  1. [Authorize(Roles="Admins",Users="zx")]
  2. public ActionResult DellUser(string userName)
  3. {
  4. return View("about");
  5. }
 [Authorize(Roles="Admins",Users="zx")]
public ActionResult DellUser(string userName)
{
return View("about");
}

上面的代码表明DellUser这个action只能被角色为admins下的zx用户访问,其他用户和角色均被禁止访问

2.HandleError

  1. [HandleError(Order=1,ExceptionType=typeof(ArgumentException),View="Error")]
  2. [HandleError(Order=2,ExceptionType=typeof(Exception))]
  3. public ActionResult DellUser(string userName)
  4. {
  5. if (string.IsNullOrEmpty(userName))
  6. {
  7. thrownew ArgumentException();
  8. }
  9. return View("about");
  10. }
[HandleError(Order=1,ExceptionType=typeof(ArgumentException),View="Error")]
[HandleError(Order=2,ExceptionType=typeof(Exception))]
public ActionResult DellUser(string userName)
{
if (string.IsNullOrEmpty(userName))
{
throw new ArgumentException();
}
return View("about");
}

HandleError用作异常处理,其中order表示处理异常的顺序,数字越小,优先级越高。

ExceptionType表示异常类型

View表示出现异常后转向的页面.

3.OutputCache

  1. [OutputCache(Duration=60)]
  2. public ActionResult DellUser(string userName)
  3. {
  4. return View("about");
  5. }
      [OutputCache(Duration=60)]
public ActionResult DellUser(string userName)
{
return View("about");
}

OutputCache用来表示页面缓存,在WEBFORM时代,在ASP.NET页面中可以直接设置这个属性,在MVC中直接在ACTION上标记属性。

4. RequireHttps

  1. [RequireHttps]
  2. public ActionResult DellUser(string userName)
  3. {
  4. return View("about");
  5. }
   [RequireHttps]
public ActionResult DellUser(string userName)
{
return View("about");
}

RequireHttps表示DellUser这个action只能使用https协议才能访问,使用其他协议不行。

最新文章

  1. 《程序员的自我修养》读书笔记 - dllimport
  2. Android的常用adb命令
  3. SQL Server 行转列重温
  4. 微信电话本可免费拨打网络电话 通话一分钟约300K流量
  5. 【Android测试】【第一节】性能——CPU
  6. Class.forName("ClassName")与ClassName.class的区别
  7. 金蝶BOS
  8. python日志输出
  9. DedeCMS文章标题前增加所属栏目名称链接
  10. 几个字符串的误区,以及setlocale函数的使用
  11. java转换字符串编码格式 (解码错误,重新解码)
  12. Javascript进阶篇——(函数)笔记整理
  13. [转载+实践理解]Android动画---如何正确使用平移动画(关于fillBefore和fillAfter的一点说明)(转载)
  14. Ubuntu16.04下通过tar.gz包安装MySQL5.5.52
  15. c++中指针的指针和指针的引用的使用
  16. 【转】阿里云Linux系统被攻击的处理过程
  17. yii2.0中url重写实现方法
  18. 时钟晶振32.768KHz为什么是15分频?
  19. 3.4Code
  20. yii2-admin扩展自定义目录

热门文章

  1. Swing-email(转)
  2. Paint获取Text的宽和高的数据
  3. 举例说, Decorator模式(Decorator Pattern)
  4. json学习初体验--第三者jar包实现bean、List、map创json格式
  5. [LeetCode145]Binary Tree Postorder Traversal
  6. Object-C 新手教程
  7. 在 Swift 语言中更好的处理 JSON 数据:SwiftyJSON
  8. python django模型内部类meta详细解释
  9. oracle学习笔记(转)
  10. HTML5 3D翻书效果(双面效应)