3 가지 카테고리를 나타낼 수있는 모델이 있습니다. 내 견해로는, 관련 분야와 함께 각 카테고리에 대해 3 개의 다른 테이블을 만들고 싶습니다. 나는 이것을 위해 뷰 모델을 사용하여 부분 뷰를 각 카테고리에 사용해야한다고 생각한다.뷰 모델을 부분 뷰로 바인딩
그래서 내 메인 모델은 3 가지 하위 모델 (부동산, 자동 및 서비스)이있는 "광고"입니다. 내 집 컨트롤러에 부동산 동작을 구현하는 방법은 다음과 예 : 다음
public ActionResult Realty()
{
var ads = db.Ads.Include(a => a.Realty);
var vm = new List<RealtyViewModel>();
foreach (var ad in ads)
{
vm.Add(new RealtyViewModel
{
Title = ad.Title,
Descirpiton = ad.Descirpiton,
Type = ad.Realty.Type,
NumberOfRooms = ad.Realty.NumberOfRooms
});
}
return PartialView(vm);
}
내 부분보기는 다음과 같습니다 : 내 색인 페이지에서 다음
@model IEnumerable<OGAS.Areas.Category.ViewModels.RealtyViewModel>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Type)
</th>
<th>
@Html.DisplayNameFor(model => model.Descirpiton)
</th>
<th>
@Html.DisplayNameFor(model => model.NumberOfRooms)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Title)
</td>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.DisplayFor(modelItem => item.Descirpiton)
</td>
<td>
@Html.DisplayFor(modelItem => item.NumberOfRooms)
</td>
</tr>
}
</table>
(어떤 모델을 사용하지 않고), I
@{Html.RenderPartial("Realty");}
을하지만 나는 다음과 같은 오류 받고 있어요 : 같은 부분 뷰를 호출
을3210'System.NullReferenceException'유형의 예외가 App_Web_gdyh352c.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다.
이 방법이 좋은지 (3vms로 전화하는 경우) 조언을 해 주시겠습니까?
감사합니다.
큰 감사, 이것은 작동합니다. 이 접근법이 (성능 관점에서) 좋은지 의심 스럽지만, 3 가지 다른 VM을 가진 3 가지 Html.Action 메소드를 호출하여 끝낼 것입니다. –
MVC를 사용한 매우 일반적인 접근 방식입니다. 같은 데이터를로드하는 중입니다. 어떤 시점에서 컨트롤러에서 호출해야합니다. 다른 옵션은 기본보기에 대해 1 개의 큰보기 모델을 만들고 예를 들어 사용합니다. @@ Html.Partial ("_ partialName", model.Realty)' –