我目前正在将混合Web Forms / MVC 2应用程序的MVC 2部分转换为MVC 3(我不熟悉Web窗体或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>
}
答案 0 :(得分:2)
尝试在项目中添加对System.Data.Linq.dll的引用
答案 1 :(得分:0)
尝试添加对System.Data.Entity的引用。