2010-12-10 3 views
0

asp.net webforms 응용 프로그램을 mvc.net으로 이식 중입니다. 모든 데이터베이스 작업을 수행하기 전에 DataSession 객체를 생성해야하는 OR 프레임 워크가 있습니다.with mvc.net보기가 렌더링 된 후에 발생한 이벤트가 있습니다

현재 웹 양식 응용 프로그램에서 Page_Init 이벤트 동안 DataSession을 인스턴스화하고 Page_UnLoad 이벤트 중에 개체를 지 웁니다.

mvc.net과 비슷한 것을 찾고 있습니다. 처음에는 OnACtionExecuting (동작 전에 발생) 및 OnActionExecuted (동작 후에 발생)를 사용하여 시작했습니다. 그러나 페이지를 렌더링하는 동안 DataSession을 더 이상 사용할 수 없으므로 실패한 엔티티가 일부 지연로드됩니다. 필요한 것은 뷰가 렌더링 된 후에 발생하는 것입니다.

답변

5

보기 페이지에 지연로드가 발생하지 않도록해야합니다. 이는 뷰가 MVC의 전체 지점을 파괴하는 데이터에 액세스한다는 것을 의미합니다.

대신 컨트롤러에서 전체 데이터를 가져온 다음보기로 전달해야합니다.

+0

좋은 지적. 아주 좋은 지적. – yamspog

+0

가 동의 함 100 %. 캐싱, 게으른 로딩은 'n'에 의해 활용 될 수있는 레벨에서 훨씬 더 많이 얻을 수 있습니다. +1 –

1

필자는 이전에 이러한 메서드를 사용하지 않았지만 아마도 OnResultExecuted 또는 OnResultExecuting을 재정의하려고합니다.

2

OnActionExecuting에 db 연결을로드하고 OnResultExecuted을 언로드하십시오.

Application_BeginRequestApplication_EndRequest은 global.asax에서 사용합니다.

관련 문제