반응형
다른 컨트롤러에서 부분보기 렌더링
컨트롤러 A 의 내 뷰에서 다른 컨트롤러 B 의 부분 뷰 를 렌더링하는 방법이 있습니까?
편집 : 두 개의 컨트롤러에만 적합한 부분보기를 작성했으며 두보기 폴더에 복사하고 싶지 않습니다.
어떤 일이 발생한 후가 아니라 뷰가 렌더링 될 때마다 부분 뷰가 표시되기를 원합니다.
- 뷰를 Views / Shared 폴더에 넣어 컨트롤러간에 뷰를 공유 할 수 있습니다. 그런 다음 각 컨트롤러는 해당 뷰를 이름으로 렌더링 할 수 있습니다.
- 를 사용하여 현재보기 내에서 부분보기 ((1)에서와 같이 컨트롤러간에 공유 할 수 있음)를 렌더링 할 수 있습니다
Html.Partial(). - 를 사용
Html.Action()하여 다른 컨트롤러에서 작업을 호출하고 현재보기 내에서 결과를 렌더링 할 수 있습니다. - 페이지가 렌더링 된 후 AJAX를 사용하여 다른 컨트롤러에서 부분보기를로드 할 수 있습니다.
@Html.Partial("~/Views/ControllerB/Index.cshtml")
예,
return PartialView("/path/view.cshtml");
경로 부분 만 해결하면됩니다.
또는 뷰 / 공유에 부분 뷰를 넣은 다음 반환 할 수 있습니다.
return PartialView("view.cshtml");
@model YourModelNamesapce.ModelName
@{
ViewBag.Title = "Edit";
Layout = "~/Views/Shared/_LayoutForPartialViews.cshtml";
}
<table>
<tr>
<td>
@Html.LabelFor(model => model.fieldname)
</td>
<td>
@Html.DisplayFor(model => model.fieldname)
</td>
</tr>
<tr>
<td>@Html.Action("PartialViewAction", "Controller", new { id = Model.id })</td>
</tr>
</table>
이 스레드가 동일한 질문을 검색하지만 답변이 작동하지 않는 것을 발견했을 때의 참고 사항입니다. Orchard CMS 모듈 에서는 Pittfall이 게시 한 깔끔한 솔루션을 사용할 수 없으며 상대 경로를 사용하여 부분보기를 반환해야합니다. 컨트롤러가 있다고 가정 해 보겠습니다.
Controllers/SiteController.cs
부분보기를 반환하고 싶습니다.
Shared/MessageList/Items
그런 다음 행동 방법에서 작성해야합니다.
return PartialView("../Shared/MessageList/Items");
참고 URL : https://stackoverflow.com/questions/7968234/render-partial-view-from-other-controller
반응형
'IT TIP' 카테고리의 다른 글
| 다중 모듈 메이븐 리액터 프로젝트의 루트 디렉토리 찾기 (0) | 2020.11.26 |
|---|---|
| 복사 할당 연산자가 참조 / 상수 참조를 반환해야하는 이유는 무엇입니까? (0) | 2020.11.26 |
| make : 규칙 호출 규칙 (0) | 2020.11.26 |
| 템플릿을 다른 템플릿에 어떻게 삽입합니까? (0) | 2020.11.26 |
| 프로그래밍 방식으로보기 너비 설정 (0) | 2020.11.26 |