码迷,mamicode.com
首页 > Web开发 > 详细

MVC过滤器基本使用

时间:2014-08-08 01:32:55      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   使用   os   io   

 

    Action过滤器
/// <summary>
/// 执行代码前执行
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
  //1.显示触发过滤器action方法的名称
  string actionName = filterContext.ActionDescriptor.ActionName;
   filterContext.HttpContext.Response.Write("ActionName=" + actionName + "</br>");
  //2.显示触发过滤器action方法所在的控制器
  string ctrlName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
  filterContext.HttpContext.Response.Write("ControllerName=" + ctrlName + "</br>");
  //3.判断当前action方法是否贴有[HttpGet]特性标签
  bool isTrue = filterContext.ActionDescriptor.IsDefined(typeof(HttpGetAttribute), false);
  filterContext.HttpContext.Response.Write("当前action是否贴有[httpGet]特性" + isTrue + "</br>");
  //4.获取当前action方法上贴有[HttpGet]特性标签的实例
  object[] httpGets = filterContext.ActionDescriptor.GetCustomAttributes(typeof(HttpGetAttribute), false);
  foreach (object obj in httpGets)
  {
  filterContext.HttpContext.Response.Write("获取当前action方法上贴有[HttpGet]特性标签的实例:" + obj.ToString() + "</br>");
  }
  //5.记录当前action方法的实际参数
  ParameterDescriptor[] dics = filterContext.ActionDescriptor.GetParameters();
  foreach(ParameterDescriptor dic in dics)
  {
  //打印action参数名称
  filterContext.HttpContext.Response.Write("记录当前action方法的实际参数:" + dic.ParameterName.ToString() + "</br>");
  }
  base.OnActionExecuting(filterContext);
}
/// <summary>
/// 执行代码后执行
/// </summary>
/// <param name="filterContext"></param>
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
  base.OnActionExecuted(filterContext);
}
/// <summary>
/// 返回结果前执行
/// </summary>
/// <param name="filterContext"></param>
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
    base.OnResultExecuting(filterContext);
}
/// <summary>
/// 返回结果后执行
/// </summary>
/// <param name="filterContext"></param>
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
    base.OnResultExecuted(filterContext);
}

 

 
异常过滤器:HandleErrorAttribute
public override void OnException(ExceptionContext filterContext)
{
    //1.获取异常对象
    Exception ex= filterContext.Exception;
    //2.将异常写入日志
    //2.1写入记录日志的具体实现过程略...
    //3.告诉mvc框架,过滤器已处理异常,不需要额外处理
    filterContext.ExceptionHandled = true;
    base.OnException(filterContext);
}

 

 
配置错误页:
1 <customErrors mode="On" defaultRedirect="Error">
2     <error statusCode="404" redirect="~/ErrorMgr/P404" />
3     <error statusCode="500" redirect="~/ErrorMgr/P500"/>
4 </customErrors>

 

MVC过滤器基本使用,布布扣,bubuko.com

MVC过滤器基本使用

标签:des   style   blog   http   color   使用   os   io   

原文地址:http://www.cnblogs.com/notniu/p/3898265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!