我有一个非常简单的场景,我的视图模型是List。
循环浏览列表
@foreach(CustomObject obj in Model)
{
Html.Partial("_TrackingCustomObject",obj)
}
所以我希望根据我的列表有一些部分观点。
部分视图已相应开发。
页面上没有错误。它只是没有显示部分视图应该显示的任何数据。
不显示任何数据的原因是什么?
答案 0 :(得分:9)
你错过了一个@:
@foreach(CustomObject obj in Model)
{
@Html.Partial("_TrackingCustomObject", obj)
}
但是为什么在使用编辑器/显示模板时编写foreach循环?像这样:
@model IEnumerable<CustomObject>
@Html.EditorForModel()
然后只需定义相应的编辑器模板(~/Views/Shared/EditorTemplates/CustomObject.cshtml
),它将自动为模型的每个元素呈现:
@model CustomObject
<div>
@Html.EditorFor(x => x.Foo)
</div>
简单而传统: - )
答案 1 :(得分:0)
尝试:@ Html.RenderPartial(“_ TrackingCustomObject”,obj)
答案 2 :(得分:0)
你错过了剃刀符号@
:
@foreach(CustomObject obj in Model)
{
@Html.Partial("_TrackingCustomObject",obj)
}
确保您的局部视图使用对象类型CustomObject
作为模型。
@model MyProject.Models.CustomObject
<h1>Yeah we're in a partial! @Model.SomeProperty </h1>
要尝试深入查看错误的位置,请尝试在PartialView中放置一些静态文本。
<p>Some text</p>
如果您的收藏有10个项目,那么您应该看到其中10个段落。接下来一旦这个工作,重点是在每个项目中显示一些属性。
@model MyProject.Models.CustomObject
<p>Some text</p>
<p>@Model.SomeProperty</p>
答案 3 :(得分:0)
使用@Html.BeginForm()
创建html表单时,必须将剩余的stuf包装在<div>
或其他容器中,否则html元素将无法呈现。
实施例
这不起作用
@using(Html.BeginForm())
{
Html.EditorFor(m => m.Name)
}
这将有效
@using(Html.BeginForm())
{
<div>
@Html.EditorFor(m => m.Name)
</div>
}
答案 4 :(得分:0)
当天晚些时候,但这在MVC 4中对我有用:
@foreach (var p in @Model.RelatedCards)
{
Html.RenderPartial("_ThumbPartial", p);
}
答案 5 :(得分:0)
这太旧了,但有人可以使用它。
@foreach(CustomObject obj in Model)
{
<text>
Html.Partial("_TrackingCustomObject",obj)
</text>
}