2009-05-25 4 views
1

커뮤니티에 약간의 질문이 있습니다. ASP.NET MVC는 RedirectToAction() 메서드없이이 컨트롤러의 인스턴스를 만들지 않고 다른 컨트롤러의 동작을 실행할 수 있습니까?리디렉션없이 작업 실행

답변

2

이것은 불가능합니다. 인스턴스 메소드를 실행하려면 실행할 인스턴스가 있어야합니다. 액션 메소드는 다른 모든 메소드와 같은 단순한 메소드이므로 메소드를 호출하기 위해 항상 인스턴스가 필요합니다.

+0

감사합니다. – iburlakov

0

아무 것도 반환하지 않는보기를 원한다는 뜻인가요? 보기가 없습니다. 아니 나다?

그렇다면, 유 ...

HTH를 EmptyResultViewResult 클래스를 반환 할 수 있습니다.

0

Reflection 기술을 통해 호출 할 수 있지만, 권장하지 않음입니다. 요청/응답/컨트롤러 컨텍스트에 없기 때문입니다.
개인적으로 나는 internal static method(bla bla){...}을 선호하며 어디에서나 원하는대로 호출합니다.
하지만 당신이 컨트롤러

제의 인스턴스의 생성없이

을 삭제하는 경우, 그럼 당신은 this methodology를 사용할 수 있습니다. 그러나 그것이 설명하는 것처럼, 그것은 권장되지 않습니다.. 다음 내용을 요약합니다.

var controller = new FooController(); 
controller.ControllerContext = new ControllerContext(this.ControllerContext.RequestContext, controller); 
var jsonResult = controller.BlaMethod(someInputParams);