보기로 전달할 항목 목록이 있습니다. 표시 템플릿을 사용하여 각 항목을 렌더링하고 싶습니다. 그러나 필드가 올바르게 렌더링되지 않기 때문에 무언가 잘못되었습니다.MVC 면도기 표시 템플릿
@model IEnumerable<CustomEntity>
@{
ViewBag.Title = "Index";
}
@Html.DisplayFor(m=>m)
가 여기 내 디스플레이 템플릿입니다 :
@model CustomEntity
<div>
@Html.LabelFor(m=>m.Name):
<strong>@Model.Name</strong>
@Html.LabelFor(m=>m.Icon):
<strong>@Model.Icon</strong>
@Html.LabelFor(m=>m.TypeName):
<strong>@Model.TypeName</strong>
</div>
페이지가로드,하지만 개체의 값을 표시하지 않습니다 은 여기 내 기본보기 (Index.cshtml)입니다.
'CustomEntity' 대신'IEnumerable '를 모델로 사용하여 DisplayTemplate을 검색하지 않습니까? –
대린 감사합니다! 내 디스플레이 템플릿의 올바른 이름이 누락되었습니다. CustomEntity 대신 Entity라고 불렀습니다. 이름을 변경하고 나면 작동합니다. @ Html.DisplayForModel()과 @ Html.DisplayFor (m => m)의 차이점을 알려주시겠습니까? – laconicdev
@ RédaMattar, 아니오, IEnumerable을 디스플레이 또는 에디터 템플릿에 속성으로 전달하면 TModel.cshtml이라는 이름의 템플릿을 찾고이 컬렉션의 각 요소에 대해 자동으로 호출하여 코드에서'foreach' 루프를 작성할 필요가 없습니다. 그것은 모두 대회에 의해 작동합니다. –