2011-03-24 2 views

답변

11

조치 메소드는 프레임 워크가 다음에 수행해야하는 명령을 구현하는 인스턴스를 리턴합니다. 이것은 액션 메소드 내에서가 아니라 액션 메소드가 완료 될 때까지 프레임 워크/파이프 라인 코드의 실행을 지연시키는 수단을 제공합니다.

enter image description here

+0

실행을 지연시키는 것 외에 다른 이점이 있습니까? – Ricky

+1

@Ricky, 실행을 지연시키는 것이 [명령 패턴] (http://en.wikipedia.org/wiki/Command_pattern)의 기본 개념입니다. * 객체 지향 프로그래밍에서 명령 패턴은 객체는 나중에 메소드를 호출하는 데 필요한 모든 정보를 표현하고 캡슐화하는 데 사용됩니다. –

+0

@Dimitrow : 귀하의 참조를 감사하십시오 – Ricky

1

ActionResult는 모든 명령 패턴의 구현이되지 않습니다 :

ActionResult 추상 클래스로 표현이 명령은 ViewResultJsonResult 콘크리트 명령에 의해 구현되는 ExecuteResult 방법 민병대. 컨트롤러의 액션은 명령에 가장 가깝고 ActionResult는 일반적으로보기의 변경 사항입니다. 이 명령은 모델을 업데이트하지만 ActionResults는 모델을 업데이트하지 않습니다.

ActionFilter를 사용하고 동작, 컨트롤러 이름 및 매개 변수를 기록에 저장하여 MVC에서 명령 패턴을 구현했습니다 (예 : List <>). 하나의 컨트롤러는 실행 취소 및 다시 실행을 구현했으며 다른 모든 컨트롤러는 모든 작업 앞에 Do_ 및 Undo_ 접두어가 붙는 규칙을 따릅니다. 또는 추가 bool을 전달할 수 있습니까? 매개 변수 실행 취소.

MVC에서 Command를 수행하는 데는 여러 가지 방법이 있지만 ActionResult와는 아무런 관련이 없습니다.

관련 문제