1

我正在尝试使用 DisplayForModel 和 EditorForModel 辅助函数来呈现我的视图。作为第一步,我有一个编写 Ienumarable 组织列表的列表控制器。

我从这个 SO question中遵循了 Darian 的答案,并按照以下方式进行了操作。

在-list.cshtml

@using PartyBiz.Models.Objects
@model IEnumerable<Organization>

@Html.DisplayFor( model => model.Organizations )

在 - Organization.cshtml

@model PartyBiz.Models.Objects.Organization

<div>@Model.Caption </div>

<div>@Model.Description  </div>

<div>@Model.NameInUse  </div>

我的模型具有以下属性

public IEnumerable<Organization> Organizations { get; set; }

控制器列表动作

public ViewResult List(OrganizationQuery qry = null)
{
    return View(OrganizationRepo.All() as IEnumerable<Organization>);
}

但是我收到编译错误:

编译器错误消息:CS1061:“System.Collections.Generic.IEnumerable”不包含“Organizations”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“Organizations”(您是否缺少 using 指令或程序集引用?)

请告诉我在这里做错了什么?

4

2 回答 2

0

问题出在List.cshtml. 您需要将其更改为如下所示:

@using PartyBiz.Models.Objects @model IEnumerable

@foreach(var m in Model)
{
    @Html.DisplayFor( m => m.Organizations )
}
于 2013-06-24T12:09:01.793 回答
0

由于您的模型已经是 IEnumerable,因此您真正需要的是

@Html.DisplayForModel()

或者

@Html.DisplayForModel("Organization") //explicitly provide template name

您引用的问题假设有另一个模型类具有Customers可以枚举的属性。你的情况有点不同。

于 2013-06-24T12:09:12.500 回答