在MVC3中循环渲染部分视图

man*_*der 4 asp.net-mvc-partialview asp.net-mvc-3

我有一个非常简单的场景,我的视图模型是一个List.

循环遍历列表

@foreach(CustomObject obj in Model)
{
Html.Partial("_TrackingCustomObject",obj)
}
Run Code Online (Sandbox Code Playgroud)

所以我希望根据我的列表有一些部分视图.

部分视图已相应开发.

页面上没有错误.它只是没有显示部分视图应该显示的任何数据.

不显示任何数据的原因是什么?

Dar*_*rov 9

你错过了一个@:

@foreach(CustomObject obj in Model)
{
    @Html.Partial("_TrackingCustomObject", obj)
}
Run Code Online (Sandbox Code Playgroud)

但是,为什么在使用编辑器/显示模板时编写foreach循环?像这样:

@model IEnumerable<CustomObject>
@Html.EditorForModel()
Run Code Online (Sandbox Code Playgroud)

然后只需定义相应的编辑器模板(~/Views/Shared/EditorTemplates/CustomObject.cshtml),它将自动为模型的每个元素呈现:

@model CustomObject
<div>
    @Html.EditorFor(x => x.Foo)
</div>
Run Code Online (Sandbox Code Playgroud)

简单而传统:-)


jmo*_*era 0

尝试这个

@Html.RenderPartial("_TrackingCustomObject",obj)
Run Code Online (Sandbox Code Playgroud)