728x90
반응형
Partials
기본설정으로 _ViewStart가 적용되지 않아, layout을 사용하지 않는다. 필요시, 지정할 수 있다.
action method를 호출하지 않는다.
Partial view에 보낼 수 있는 model을 가지고 있을 때 사용한다.
method : RenderPartial, Partial
두 method의 결과는 동일하다. 다른점은, RenderPartial은 void, Partial은 MvcHtmlString을 반환한다.
전자가 더 빠르지만, 큰 차이 없다.
public static void RenderPartial(this HtmlHelper htmlHelper, string partialViewName, object model);
public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model);
BannerList.cshtml
@model IEnumerable<Dto.Banner>
<!-- 목록테이블:S -->
<div class="admFormListWrap MT20">
@foreach (var item in Model)
{
<!-- foreach:S -->
@Html.Partial("BannerListItem", item)
<!-- foreach:E -->
}
</div>
<!-- 목록테이블:E -->
BannerListItem.cshtml
@model Dto.Banner
@{
Layout = null;
}
<div class="admFormList">
<div class="admFormInner">
<div class="txArea">
<div class="recNm">@Model.Title</div>
<ul class="txaLst">
<li class="tp">
<span class="dt">노출순서</span> : @Model.OrderNum
</li>
<li class="tp">
<span class="dt">등록일</span> : @Model.RegDate.ToShortDateString()
</li>
</ul>
</div>
</div>
</div>
Child actions
action method를 호출한다.
Child action view로 보낼 model을 갖고 있지 않다. parent view와 상관없는 데이터를 표시한다.
database or session과 같은 persistent store에서 model을 가져온다.
method : RenderAction, Action
[ChildActionOnly]
public PartialViewResult LogOnWidget()
{
bool isAuthenticated = Request.IsAuthenticated;
Profile profile = null;
if (isAuthenticated)
{
var username = HttpContext.User.Identity.Name;
profile = _profileRepository.Find(username);
if (profile == null)
{
profile = new Profile(username);
_profileRepository.Add(profile);
}
}
var model = new LogOnWidgetModel(isAuthenticated, profile);
return PartialView(model);
}
<div id="logindisplay">
@Html.Action("LogOnWidget", "Account")
</div>
728x90
반응형
'ASP.NET MVC' 카테고리의 다른 글
ASP.NET MVC] OWIN, KATANA (0) | 2023.02.07 |
---|---|
ASP.NET MVC] Web.config transform file (0) | 2022.07.21 |
ASP.NET MVC] ChildActionOnlyAttribute, ActionMethodSelectorAttribute (0) | 2022.07.15 |
ASP.NET MVC] Ajax with JSON - .getJSON(), client-side template(jquery.tmpl.js) (0) | 2022.07.13 |
ASP.NET MVC] Ajax Submit - .post() (0) | 2022.07.12 |
댓글