我有一个非常简单的场景,我的视图的模型是一个List。在MVC3的循环中渲染部分视图
遍历目录像
@foreach(CustomObject obj in Model)
{
Html.Partial("_TrackingCustomObject",obj)
}
所以我期待根据我的名单有部分意见数。
部分视图已相应开发。
页面没有错误。它只是不显示任何应该通过部分视图显示的数据。
什么原因没有显示任何数据?
我有一个非常简单的场景,我的视图的模型是一个List。在MVC3的循环中渲染部分视图
遍历目录像
@foreach(CustomObject obj in Model)
{
Html.Partial("_TrackingCustomObject",obj)
}
所以我期待根据我的名单有部分意见数。
部分视图已相应开发。
页面没有错误。它只是不显示任何应该通过部分视图显示的数据。
什么原因没有显示任何数据?
尝试:@ Html.RenderPartial( “_ TrackingCustomObject”,OBJ)
你缺少一个@:
@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>
简单和常规:-)
您错过了剃刀符号@
:
@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>
当您使用@Html.BeginForm()
创建HTML表单,你必须包装一个<div>
或其他容器否则html元素将不会呈现内剩余塞入。
Ex。
这是不行的
@using(Html.BeginForm())
{
Html.EditorFor(m => m.Name)
}
这将工作
@using(Html.BeginForm())
{
<div>
@Html.EditorFor(m => m.Name)
</div>
}
位晚了一天,但在MVC 4为我工作:
@foreach (var p in @Model.RelatedCards)
{
Html.RenderPartial("_ThumbPartial", p);
}
这太旧了,但有人可以使用它。
@foreach(CustomObject obj in Model)
{
<text>
Html.Partial("_TrackingCustomObject",obj)
</text>
}
没有这不是一个问题,因为我使用剃刀视图我不需要把@everywhere。仍然在改变它也不起作用 – 2012-07-13 17:30:01
如果这不起作用,那么我怀疑你的问题是在别的地方。例如,您可以开始查看您的'_TrackingCustomObject.cshtml'部分。 – 2012-07-13 17:31:32