转换为Razor语法时,foreach GetEnumerator错误

时间:2011-11-30 19:07:14

标签: asp.net-mvc razor webforms-view-engine

我目前正在将混合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>
}

2 个答案:

答案 0 :(得分:2)

尝试在项目中添加对System.Data.Linq.dll的引用

答案 1 :(得分:0)

尝试添加对System.Data.Entity的引用。