programing

MVC 자식 작업이란 무엇입니까?

nicescript 2021. 1. 14. 08:06
반응형

MVC 자식 작업이란 무엇입니까?


나는 MVC (기본 책)에서 아동 행동에 대해 읽었지만 그것이 무엇인지 정말로 모른다?

이 방법을 설명해 주시겠습니까?


Phil Haack 은이 블로그 게시물 에서 잘 설명합니다 . 기본적으로 자식 작업은 Html.Action도우미를 사용하여 뷰에서 호출 할 수있는 컨트롤러 작업입니다 .

@Html.Action("SomeActionName", "SomeController")

이 작업은 뷰의 지정된 위치에서 출력을 실행하고 렌더링합니다. 부분과의 차이점은 부분에는 지정된 마크 업 만 포함되며 기본 작업 외에 실행되는 다른 작업이 없다는 것입니다.

따라서 기본적으로 요청을 수신하고보기를 렌더링 한 기본 작업이 있지만이보기 내에서 독립적 인 MVC 수명주기를 거치고 결국 출력을 렌더링하는 여러 자식 작업을 렌더링 할 수 있습니다. 그리고이 모든 것은 단일 HTTP 요청 컨텍스트에서 발생합니다.

하위 작업은 뷰에 포함 할 수 있고 독립적 인 MVC 수명주기를 거치는 전체 재사용 가능한 위젯을 만드는 데 유용합니다.


하위 작업은 뷰 내부에서 html.renderaction 또는 html.action 도우미를 사용하여 호출되는 작업입니다.


자식 작업은 @ Html.Action ()을 통해 뷰에서 호출되는 작업 메서드입니다 .

예제 컨트롤러에 액션이 있습니다.

public DateTime Time(DateTime time)
{
    return time;
}

보기 에서이 작업을 호출하려면 다음 을 사용합니다.

@Html.Action("Time", new { time = DateTime.Now }) 

주목할 점 :

  1. [ChildActionOnly] 속성으로 장식 된 모든 작업 메서드는 자식 작업 메서드입니다.
  2. 자식 작업 메서드는 URL 요청에 응답하지 않습니다. 시도하면 런타임 오류가 발생합니다. 즉, 하위 요청에 의해서만 하위 작업에 액세스 할 수 있습니다.

  3. "Action ()"및 "RenderAction ()"html 도우미를 사용하여보기에서 자식 요청을 만들어 자식 작업 메서드를 호출 할 수 있습니다.

  4. 액션 메서드는 자식 액션으로 사용하기 위해 [ChildActionOnly] 속성을 가질 필요는 없지만, 사용자 요청의 결과로 액션 메서드가 호출되는 것을 막으려면이 속성을 사용하십시오.

  5. 필수 사항은 아니지만 하위 작업은 일반적으로 부분보기와 연결됩니다.

  6. 자식 작업 메서드는 Action () 또는 RenderAction () 도우미를 사용하여 NonAction 메서드를 호출 할 수 없다는 점에서 NonAction 메서드와 다릅니다.

  7. 자식 작업 메서드를 사용하면 뷰의 일부를 캐시 할 수 있습니다. 이것이 자식 행동 방법의 주요 장점입니다.

참조 URL : https://stackoverflow.com/questions/12530016/what-is-an-mvc-child-action

반응형