MVC Html.Partial 또는 Html.Action
나는 asp.net MVC를 처음 사용하므로 저를 참아주십시오. 여러보기에서 반복되는 메뉴를 만들어야합니다. 목적에 더 잘 부합하는 것이 Html.Action
OR Html.Partial
.
다음은 Html.Action 또는 Html.Partial 사용에 대한 지침입니다.
Html.Partial
Html.Partial
정적 콘텐츠를 렌더링 할 때 사용 하거나- 메인 뷰로 전송되는 ViewModel에서 데이터를 전달하려는 경우
Html.Action
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
'developer tip' 카테고리의 다른 글
Linq OrderByDescending, 먼저 null (0) | 2020.12.06 |
---|---|
.android 폴더에 debug.keystore가 없습니다. (0) | 2020.12.06 |
Microsoft Visual Studio 2012 오류 : 제약 조건과 일치하는 내보내기를 찾을 수 없습니다. (0) | 2020.12.06 |
외부에서 볼 수 있도록 bash 쉘 스크립트 내부에 별명을 설정하는 방법은 무엇입니까? (0) | 2020.12.06 |
문자열에서 Python 와일드 카드 검색 (0) | 2020.12.06 |