Asp.net mvc 转换为Razor语法时发生foreach GetEnumerator错误
我目前正在将混合Web窗体/MVC 2应用程序的MVC 2部分转换为MVC 3(我不熟悉Web窗体或MVC 2),并且在一些foreach语句中遇到了一些问题(在原始混合应用程序中工作良好) 当转换为Razor时,我的一些(不是全部)foreach语句会说以下几点: foreach语句无法对类型为的变量进行操作 'System.Data.Objects.DataClasses.EntityCollection' 因为 'System.Data.Objects.DataClasses.EntityCollection' 不包含“GetEnumerator”的公共定义 这是Web Forms/MVC 2应用程序中的一个示例.ascx,其中foreach工作正常:Asp.net mvc 转换为Razor语法时发生foreach GetEnumerator错误,asp.net-mvc,razor,webforms-view-engine,Asp.net Mvc,Razor,Webforms View Engine,我目前正在将混合Web窗体/MVC 2应用程序的MVC 2部分转换为MVC 3(我不熟悉Web窗体或MVC 2),并且在一些foreach语句中遇到了一些问题(在原始混合应用程序中工作良好) 当转换为Razor时,我的一些(不是全部)foreach语句会说以下几点: foreach语句无法对类型为的变量进行操作 'System.Data.Objects.DataClasses.EntityCollection' 因为 'System.Data.Objects.DataClasses.Entity
<%@ 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>
<%} %>
0) { %>
这是我尝试进行.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>
}
@model Project.Activity.PortalGroup
@if(Model.PortalMembers.Count()>0)
{
@foreach(Model.PortalMembers中的var项)
{
@item.SubAccount.FirstName@item.SubAccount.LastName
}
}
尝试在项目中添加对System.Data.Linq.dll的引用尝试添加对System.Data.Entity的引用。我已将命名空间添加到“我的视图”文件夹中的webconfig中,但错误似乎仍然存在。尝试添加“@using System.Data.Linq”在您的视图顶部。您是否添加了对项目本身的引用?对我来说是可行的。没有演示如何这样做,这只是一个注释,而不是答案。