2012-11-09 57 views

回答

0

您可以編寫自己的屬性從衍生ActionFilterAttribute

public class LogExceptionAttribute : ActionFilterAttribute 
    { 
     public override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
       base.OnActionExecuting(filterContext); 
     } 

     public override void OnActionExecuted(ActionExecutedContext filterContext) 
     { 
       //here you can inspect filterContext for exceptions 
       base.OnActionExecuted(filterContext); 
     } 

     public override void OnResultExecuting(ResultExecutingContext filterContext) 
     { 
      base.OnResultExecuting(filterContext); 
     } 

     public override void OnResultExecuted(ResultExecutedContext filterContext) 
     { 
      base.OnResultExecuted(filterContext); 
     } 
    } 

,然後把屬性的動作/控制器或Global.asax中ApplicationStart()作爲全局篩選器註冊。

例子:

[LogException] 
     public ActionResult Index() 
     { 
      throw new Exception(); 
      return View(); 
     } 

enter image description here

這將使您可以登錄異常或做其他事。

+0

它只適用於未處理的異常(我應該重新拋出異常以使其工作)。 – raulgomis