MVC Razor显示模板

lac*_*dev 3 asp.net-mvc display-templates asp.net-mvc-4

我有一个项目列表,我将传递给视图.我想使用显示模板渲染每个项目.但是,有些东西是错的,因为我没有正确渲染场.这是我的主要观点(Index.cshtml):

@model IEnumerable<CustomEntity>

@{
    ViewBag.Title = "Index";
}
@Html.DisplayFor(m=>m) 
Run Code Online (Sandbox Code Playgroud)

这是我的显示模板:

@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>
Run Code Online (Sandbox Code Playgroud)

页面加载,但不显示实体的值.

Dar*_*rov 6

@model IEnumerable<CustomEntity>

@{
    ViewBag.Title = "Index";
}
@Html.DisplayForModel()
Run Code Online (Sandbox Code Playgroud)

然后确保您的显示模板存储在~/Views/Shared/DisplayTemplates/CustomEntity.cshtml.请注意,显示模板的位置和名称非常重要.它应该以与type(CustomEntity.cshtml)相同的方式调用,并且应该位于~/Views/Shared/DisplayTemplates或者您也可以在呈现主视图的控制器的~/Views/XXX/DisplayTemplates位置覆盖它XXX.