2009-04-03 3 views
0

O/R 매퍼를 사용하여 일반적인 방식으로 DB에서 개체를 다시로드 할 수 있습니다. 나는 바로 다음에 요청을 가로 챌 수 있도록하고 싶습니다. 매핑 된 객체를 다시로드하기 위해서입니다.MVC 컨트롤러의 작업 인터셉트 방법

ActionFilters는 물론 존재하지만 ActionFilters (또는 내가 본 예제)는 객체가 생성 된 후에가 아니라 양식에서 제공하는 데이터를 처리 할 수 ​​있습니다.

컨트롤러의 무시 무시한 방법을 살펴 보았지만 눈에 띄지 않는 것은 무엇이든 발견했습니다. 아무도이 일을하는 방법을 알고 있습니까?

의견을 보내 주셔서 감사합니다.

나세르

답변

0

사용자 정의 모델 바인더가 필요합니다. 기본 ModelBinder 클래스에서 상속 받아 원하는 로직을 제공 할 수 있습니다. 예를 들어

,이 경우 :

public ActionResult Save([Bind(typeof(CustomModelBinder))] Customer customer) 
{ 
    /* ... */ 
} 

이 모델 바인더 당신을위한 객체를 생성합니다,하지만 당신은 (기존 기록을 위해) 먼저 데이터베이스를 가져 오기 위해 선택할 수 있습니다.

+0

친애하는 Ben! 답장을 보내 주셔서 감사합니다. O/R Mapper를 사용하는 모델러에 코드를 발견 했으므로 모델 밴더에서 다시로드해야합니다. 답장을 보내 주셔서 감사합니다. 나세르 – Nasser

0

내가 올바르게 이해한다면 이와 같은 것이 필요합니다.

public class Navigate : ActionFilterAttribute, IActionFilter 
{ 
    void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext) 
    { 
     ViewResult view = filterContext.Result as ViewResult; 

    } 
} 

현재 컨트롤러에 속한 view.ViewData.Model을 볼 수 있으며이 매핑 된 데이터로 원하는 모든 작업을 수행 할 수 있습니다. 제가 맞는지 알려주세요. :)

+0

친애하는 Omoto! 답장을 보내 주셔서 감사합니다. 조치 후 결과로 거래에 응답합니다. 실제로 실제로 동작을하기 전에 매핑 된 객체를 얻는 것에 관심이 있습니다. 인사말 Nasser – Nasser

관련 문제