内置过滤器简介
OutputCacheAttribute
[OutputCache(Duration=10,VaryByParam="none")]
public ActionResult TestCache() {
ViewBag.Time = DateTime.Now.ToString();
return View();
}
上述代码在动作方法上设置了OutputCache特性,使得页面具有缓存功能,缓存10秒。Cache的属性也可在web.config中设置
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="outPutCache" duration="10" varyByParam="none"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
相应的动作方法上
[OutputCache(CacheProfile="outPutCache")]
public ActionResult TestCache() {
ViewBag.Time = DateTime.Now.ToString();
return View();
}
2 AuthorizeAttribute
该类主要实现页面的成员和角色管理,AuthorizeAttribute类中设置了两个属性,分别是Users和Roles,分别表示成员和角色
上述动作方法上设置了Authorize特性,指明该动作方法只能是注册并通过认证的用户才能访问
[Authorize(Users="test1,test2")]
public ActionResult TestAuthorize()
{
return View();
}
上述动作方法指明只有用户test1,test2能够访问,如果用户过多,可以将这些用户设置为一类角色,通过设置角色参数来设定
[Authorize(Roles="Admin")]
public ActionResult TestAuthorize()
{
return View();
}
上述动作方法指明只有角色为Admin的用户才能访问。
3 HandleErrorAttribute
该类实现网站中指定控制器或者控制器中相关方法的异常处理。在动作方法上设置了[HandleError]特性后,发生异常时将自动交给异常处理页面,在MVC 4中,创建项目时,已经在Global.asax中添加了全局的HandleError特性
在MVC中的APP START文件夹中的FilterConfig类中有定义
4.ActionFilterAttribute基类
- OnActionExecuting – 在controller action执行之前调用
- OnActionExecuted – 在controller action执行之后调用
- OnResultExecuting – 在controller action result执行之前调用
- OnResultExecuted – 在controller action result执行之后调用
还可以加[RequiredHttps]的过滤标签