2010-08-25 42 views
0

我想检查是否异常已经与下面的filterContext.Exception行动提出:ASP.NET MVC OnActionExecuted ActionFilter

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始终为空。我无法在此处捕获此信息。

任何意识?

回答

3

这是因为异常不会逃脱操作方法,因为一旦抛出它就会被捕获。我很惊讶你的代码编译,因为你没有return语句。不管怎样,试试这个动作方法:

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

冷静,这works.thk – ozsenegal 2010-08-25 22:15:27

+0

这并不@marcind工作 – Kalanamith 2014-11-12 06:04:13

+0

@Kirov是它作为参考MVC2要求由OP。除非你提到一个完全不同的场景,在这种情况下,我不知道你在说什么。 – marcind 2014-11-26 00:35:22

相关问题