엔터티 Request
의 일부 자식 개체 (Items
)를 표시해야합니다. 요청 대신 원래 요청 엔터티보다 많은 정보가 포함 된보기를 전달하는 것이 좋습니다. 이 뷰에서는 RequestInfo
이라고 부르며 원래 요청은 Id
입니다.MVC4에서 RenderAction (actionname, values) 사용 문제
그런 다음 MVC보기에 내가 그랬어 :
@model CAPS.RequestInfo
...
@Html.RenderAction("Items", new { requestId = Model.Id })
는 렌더링하려면 일반 목록을 표시 할
public PartialViewResult Items(int requestId)
{
using (var db = new DbContext())
{
var items = db.Items.Where(x => x.Request.Id == requestId);
return PartialView("_Items", items);
}
}
:
@model IEnumerable<CAPS.Item>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.Code)
</th>
<th>
@Html.DisplayNameFor(model => model.Description)
</th>
<th>
@Html.DisplayNameFor(model => model.Qty)
</th>
<th>
@Html.DisplayNameFor(model => model.Value)
</th>
<th>
@Html.DisplayNameFor(model => model.Type)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Code)
</td>
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Qty)
</td>
<td>
@Html.DisplayFor(modelItem => item.Value)
</td>
<td>
@Html.DisplayFor(modelItem => item.Type)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
</table>
그러나 내가 컴파일러 오류를 얻고있다 RenderAction
줄 "암시 적 유형을 'void'에서 'o'로 변환 할 수 없습니다. bject ' " 아이디어가 있으십니까? 렌더링 메소드를 호출 할 때
+1 : 똑같이 유효한 답변이며 면도기 구문에 더 적합합니다. 이건 더 많은 표가 필요해. :) –