ASP.NET MVC OnActionExecuted ActionFilter

时间:2010-08-25 21:59:43

标签: c# asp.net-mvc-2

我尝试检查下面的 filterContext.Exception 操作是否引发了异常:

 public class Test : ActionFilterAttribute
    [...]   
    public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                if (filterContext.Exception != null)
                {
                     continue;
                }
            }
控制器中的

        [Test]
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Login(Usuarios usuario)
        {
            try
            {
             throw new Exception();
            }
           catch
           {

           }

         }

filterContext.Exception 始终为null。我无法在此处捕获此信息。

任何想法?

1 个答案:

答案 0 :(得分:3)

那是因为异常永远不会逃避动作方法,因为一旦你抛出它就会被捕获。我很惊讶您的代码编译,因为您没有return语句。无论如何,试试这个动作方法:

[Test] 
[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Login(Usuarios usuario) 
{ 
     throw new Exception(); 
}