我目前正在将混合 Web Forms/MVC 2 应用程序的 MVC 2 部分转换为 MVC 3(我不熟悉 Web Forms 或 MVC 2)并且遇到了一些 foreach 语句的问题(在原始混合应用程序中工作正常)。
转换为 Razor 时,我的一些(不是全部)foreach 语句会说以下内容:
foreach 语句不能对“System.Data.Objects.DataClasses.EntityCollection<Project.Activity.PortalMember>”类型的变量进行操作,因为“System.Data.Objects.DataClasses.EntityCollection<Project.Activity.PortalMember>”不包含公共'GetEnumerator' 的定义
这是 Web Forms/MVC 2 应用程序中的一个示例 .ascx,其中 foreach 工作正常:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Project.Activity.PortalGroup>" %>
<% if (Model.PortalMembers.Count() > 0) { %>
<div>
<% foreach (var item in Model.PortalMembers) { %>
<div>
<%: item.SubAccount.FirstName %> <%: item.SubAccount.LastName %>
</div>
<%} %>
</div>
<%} %>
这是我对 .cshtml 转换的尝试,它给了我错误:
@model Project.Activity.PortalGroup
@if (Model.PortalMembers.Count() > 0)
{
<div>
@foreach (var item in Model.PortalMembers)
{
<div>
@item.SubAccount.FirstName @item.SubAccount.LastName
</div>
}
</div>
}