我目前正在将混合Web Forms/MVC 2应用程序的MVC 2部分转换为MVC 3(我不熟悉Web Forms或MVC 2),并且遇到了一些foreach语句(在原始混合应用程序中工作良好)的问题。
当转换到Razor时,我的一些(不是全部)foreach语句会像这样说:
foreach语句不能对类型的变量进行操作"System.Data.Objects.DataClasses.EntityCollection
"因为"System.Data.Objects.DataClasses.EntityCollection "不包含'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>
}
尝试在项目中添加System.Data.Linq.dll引用
尝试添加对System.Data.Entity的引用。