Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 转换为Razor语法时发生foreach GetEnumerator错误_Asp.net Mvc_Razor_Webforms View Engine - Fatal编程技术网

Asp.net mvc 转换为Razor语法时发生foreach GetEnumerator错误

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

我目前正在将混合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工作正常:

<%@ 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”在您的视图顶部。您是否添加了对项目本身的引用?对我来说是可行的。没有演示如何这样做,这只是一个注释,而不是答案。