2013-08-07 2 views
1

나는 NotificationManager라는 정적 클래스가 있으며 컨트롤러 메서드가 호출 될 때마다 NotificationManager에 ModelErrors를 저장하려고합니다.컨트롤러 메서드가 끝날 때마다 메서드 호출

그러나 실제 Controller 내부에 없기 때문에 NotificationManager 내부에서 ModelState에 액세스 할 수 없습니다.

컨트롤러 메서드가 완료되면 모든 단일 컨트롤러 메서드에 메서드를 작성하지 않고 자동으로 메서드를 호출 할 수있는 방법이 있습니까?

참고 :보기의 값을 사용해야합니다.

답변

4

컨트롤러에서 OnActionExecuted를 재정의하십시오. ViewData가 여전히 있습니다.

protected override void OnActionExecuted(ActionExecutedContext filterContext) 
{ 
    //Do your stuff 
    base.OnActionExecuted(filterContext); 
} 
+0

정상적으로 작동합니다. 'filterContext.Controller.ViewData.ModelState'를 사용하여 OP에 의해 요청 된대로'ModelState'를 얻습니다. Slaks가 제안한대로'ActionFilter'와 결합하는 것이 더 나을지라도 – musefan

4

당신은 글로벌 ActionFilter을 만들고 OnActionExecuted을 대체 할 수 있습니다.

또는 하위 작업을보기에 배치 할 수 있습니다.

관련 문제