2013-02-05 1 views
-3

정적 함수가있어서 매개 변수가있는 특정 컨트롤러/액션을 호출하고 결과를 가져와야합니다. 어떻게이 작업을 수행 할 수 있습니까?Mvc3 - 정적 함수에서 액션 호출 방법

+0

정적 기능은 다음과 같습니다

나는 나의함으로써 Application_Error 처리기에서 비슷한합니까? 컨트롤러 내에서 전화하고 싶습니까? 그렇지 않다면 ... 새로운 인스턴스를 인스턴스화 할 것입니다. –

+0

현재 동일한 컨트롤러 안에 있지만 일반적으로 외부에있을 수 있습니다. – Dusan

+0

정적 인 경우 @ZombieHunter가 차이를 만듭니다 ??? – Dusan

답변

2

특정 컨트롤러의 인스턴스를 만든 다음 인스턴스의 Execute() 메서드를 사용하여 컨트롤러를 실행할 수 있습니다.

var routeData = new RouteData(); 
routeData.Values["controller"] = "Error"; 
routeData.Values["action"] = "General"; 
routeData.Values["exception"] = exception; 

IController errorsController = new ErrorController(); 
var rc = new RequestContext(new HttpContextWrapper(Context), routeData); 
try 
{ 
    errorsController.Execute(rc); 
} 
catch (Exception ex) 
{ 
    // Appropriate error handling. 
}