2010-08-25 4 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 всегда null.I не может поймать эту информацию здесь.

Любые идеи?

ответ

3

Это потому, что исключение никогда не ускользает от метода действия, так как оно попадается, как только вы его бросаете. Я удивлен, что ваш код компилируется, так как у вас нет оператора return. Во всяком случае, попробовать этот метод действия:

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

круто, это works.thk – ozsenegal

+0

это не работает @marcind – Kalanamith

+0

@Kirov да это делает, как и на вопрос ОП со ссылкой на MVC2. Если вы не ссылаетесь на совершенно другой сценарий, в этом случае я не знаю, о чем вы говорите. – marcind

Смежные вопросы