2013-08-13 5 views
1

4 개의 다른 테이블에서 4 개의 다른 목록을 표시하고 싶습니다. 해당 컨트롤러에서 4 개의 테이블에 대해 Partial View을 만들었지 만 렌더링되지 않으면 오류가 발생합니다. 사전에 전달ASP.NET MVC 4, 부분보기

모델 항목 유형 'Medical_App.Models.MA_Area'이며, 그러나 이것은> 사전 형의 모델 아이템> 'System.Collections.Generic.IEnumerable`1 [Medical_App.Models 필요하다. MA_Area] '.

다른 방법이 있다면/공유하십시오. 당신이 부분보기에 올바른 모델을 통과해야처럼

public PartialViewResult AreaList() 
    { 
     var result = db.MA_Area.OrderBy(d => d.AreaName); 
     return PartialView(result); 
    } 



@model IEnumerable<Medical_App.Models.MA_Area> 
     @Html.DisplayNameFor(model => model.CityId) 
     @Html.DisplayNameFor(model => model.AreaName) 

@foreach (var item in Model) { 
<tr> 
    <td> 
     @Html.DisplayFor(modelItem => item.CityId) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.AreaName) 
    </td> 
    <td> 
     @Html.ActionLink("Edit", "Edit", new { id=item.AreaId }) | 
     @Html.ActionLink("Details", "Details", new { id=item.AreaId }) | 
     @Html.ActionLink("Delete", "Delete", new { id=item.AreaId }) 
    </td> 
</tr> 

은}

+0

컨트롤러와 뷰의 모습을 보여줄 수 있습니까? – SWeko

+0

의견을 올리십시오. 보기가 시퀀스에 강하게 입력되는 동안 단일 인스턴스를 모델로 전달합니다. –

+0

이 주제에 대한 자습서 – user1404954

답변

1

소리가 난다. 기본적으로 부분 뷰를 호출하면 부모 뷰에있는 모델이 전달됩니다.

그래서 4 개의 목록을 주보기로 전달하는 경우 각 부분 호출에는 해당보기에 대한 올바른 IEnumarable 개체가 포함되어야합니다.

는이 같은 부분 호출 모델을 전달할 수 있습니다

@Html.Partial("_partialName", model) 

희망이 당신은 당신의 컨트롤러/뷰에서 항목 즉, (목록)의 목록을 통과

0

하는 데 도움이됩니다. 그러나 당신은 pertial보기를 만들고 pertial view (@model Medical_App.Models.MA_Area) 상단에 모델의 단일 항목, 즉 Medical_App.Models.MA_Area를 허용합니다. 귀하의 컨트롤러 /보기에서 모델의 단일 인스턴스를 전달하거나 귀하의 pertial보기에서 모델의 목록을 수락하십시오.

1

컬렉션을 전달하지만 단일 인스턴스를 표시하려고합니다.

@model IEnumerable<Medical_App.Models.MA_Area> 
@{foreach(var item in Model) 
{ 
@Html.DisplayNameFor(model => item .CityId) 
@Html.DisplayNameFor(model => item .AreaName) 
} 

그런 다음 각 항목에 대해 몇 가지 레이아웃 구조를 증명해야합니다.

행운을 빌어 요.