【发布时间】:2018-03-20 19:51:15
【问题描述】:
我在我的控制器上设置了一个 ViewData,例如:
ViewData["Registrations_Services"] = GetServices(); // return a List<Services>
然后,我想在我的视图中显示它。之前,我正在使用模型进行迭代:
@Html.EditorFor(m => m.Services)
但是现在我怎样才能从 ViewData 做同样的事情呢?尝试过:
@foreach (var item in ViewData["Registrations_Services"] as IList<MyProject.Models.Services>)
{
@Html.EditorFor(item)
}
但是类型参数不同,当然它不起作用。
也试过了:
@Html.EditorFor(m => ViewData["Registrations_Services"] as IList<MyProject.Models.Services>)
但它说
模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。
我需要为每个项目应用编辑器模板Services.cshtml:
<div class="form-group">
@Html.Label(Model.Description, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-6 checkbox">
@Html.HiddenFor(m => m.Id)
@Html.HiddenFor(m => m.Name)
@Html.HiddenFor(m => m.RegistrationId)
@Html.HiddenFor(m => m.Description)
@Html.EditorFor(m => m.Enabled)
</div>
<div class="col-md-4"></div>
</div>
这就是我使用@Html.EditorFor(m => m.Services)的原因。
【问题讨论】:
-
您的 Services.cshtml 需要收集?
-
@EhsanSajjad:看起来更新的问题
-
你试过了吗:
@Html.EditorFor(x=> item)? -
是的,但它不会呈现正确的列表。 id 只指同名/id。
-
那么让我们等待更多的专家来阐明:)
标签: asp.net-mvc viewdata