developer tip

MVC Html.Partial 또는 Html.Action

copycodes 2020. 12. 6. 21:42
반응형

MVC Html.Partial 또는 Html.Action


나는 asp.net MVC를 처음 사용하므로 저를 참아주십시오. 여러보기에서 반복되는 메뉴를 만들어야합니다. 목적에 더 잘 부합하는 것이 Html.ActionOR Html.Partial.


다음은 Html.Action 또는 Html.Partial 사용에 대한 지침입니다.

Html.Partial

  1. Html.Partial정적 콘텐츠를 렌더링 할 때 사용 하거나
  2. 메인 뷰로 전송되는 ViewModel에서 데이터를 전달하려는 경우

Html.Action

  1. Html.Action부분보기를 채우기 위해 서버에서 추가 데이터를 실제로 검색해야 할 때 사용 합니다.

기본적으로 정적 인 경우 Html.Partial(). 동적 인 경우 독립적 인 데이터를 모델링하려면 Html.Action(). 더 많은 시나리오가있을 수 있지만 이것은 어디로 / 어떻게 가야하는지에 대한 좋은 아이디어를 제공 할 것입니다. Html.RenderPartial()그리고 Html.RenderAction()위의 비슷한 이름 기능을 위해 교환 할 수있다.


Html.Partial : 컨트롤러 작업을 먼저 치지 않고 부분 뷰렌더링합니다 . 참조 : 부분보기

Html.Action 보기 / 부분보기를 반환 있는 Controller Action을 호출합니다 (또는 그렇지 않을 수 있습니다. HttpNotFound를 throw하거나 Json 또는 기타 항목을 반환 할 수 있음).

메뉴에 뷰 모델이 필요합니까, 아니면 정적입니까?

정적 메뉴라면 Html.Partial필요에 맞을 것입니다. 부분보기 안에 정적 메뉴 콘텐츠를 배치하고 Html.Partial렌더링 할 위치를 호출 합니다.

메뉴가 뷰 모델에서 생성되는 경우 Html.Partial 또는 Html.Action다음 중 하나 를 사용할 수 있습니다 .

Html.Partial을 사용하여 뷰 모델 연결 :

public class MenuViewModel {
    // menu data goes here
}

public class GeneralViewModel : MenuViewModel {
    // general view info goes here
}

public ActionResult Index() {
    return View(new GeneralViewModel());
}

// View Code
@model GeneralViewModel
<div>@Html.Partial("_partialName", model)</div>

여기서 우리는 완전한 뷰 모델을 뷰에 전달하고 뷰는 Partial을 호출하고 그 모델을 부분 뷰로 넘깁니다.

** Html.Action을 사용하여 모델 분리 : **

public ActionResult Index() {
    return View(new GeneralViewModel());
}

public ActionResult MenuView() {
    return PartialView(new MenuViewModel());
}

// View Code
@model GeneralViewModel
<div>@Html.Action("MenuView")</div>

여기에서 뷰 는 새로운 뷰 모델을 생성하고 부분에 전달 하는 컨트롤러 액션 MenuView호출합니다 .

참고 URL : https://stackoverflow.com/questions/11766554/mvc-html-partial-or-html-action

반응형