2010-03-15 4 views
0

저는 만들고있는 ASP.NET MVC 응용 프로그램에 대해 새 ActionFilter를 만들었습니다. 나는 Http Post를 받아들이는 액션을 가지고 있고, 액션 메소드의 인수는 객체를 받아 들인다.이 객체는 사용자 정의 모델 바인더를 만들고 등록했다. ActionFilter 내의 모델 가용성

은 내가 IActionFilter.OnActionExecuting 내부 filterContext.Controller.ViewData.Model의 값이 모델 바인더는 항상 액션 필터 OnActionExecuting 방법 전에 호출되는 것처럼 보인다는 사실에도 불구하고 항상 null입니다 것으로 나타났습니다. 동일한 동작 필터의 IActionFilter.OnActionExecuted 메서드 내부의 이와 대조적으로 filterContext.Controller.ViewData.Model 값은 null이 아닙니다.

이것은 설계 상 또는 버그인지를 아시나요? 디자인에 의한 이유가 무엇인지 설명하는 링크가 있다면? 감사.

답변

1

컨트롤러 작업은 모델을 생성하고 뷰에 전달하기 때문에 작업을 호출하기 전에 모델이 어떻게 존재할 수 있습니까? 모델이 만들어 질 때까지 어떤 모델을 만들지 모릅니다.

+0

감사합니다. 바인더로 만든 모델을 수정하려고했습니다. 나는 다른 길을 찾을 것이다. –

1

일반적으로 작업 실행 중에 모델을 설정합니다. 따라서 액션이 호출되기 전에 발생하는 OnActionExecuting을 실행하는 동안 모델이 null 인 것은 당연합니다.