foreach ошибка GetEnumerator при преобразовании в синтаксис Razor - PullRequest
3 голосов
/ 30 ноября 2011

В настоящее время я нахожусь в процессе преобразования части MVC 2 гибридного приложения Web Forms / MVC 2 в MVC 3 (я не знаком с Web Forms или MVC 2) и столкнулся с некоторыми проблемами с некоторыми изоператоры foreach (которые прекрасно работают в исходном гибридном приложении).

При преобразовании в Razor некоторые (не все) из моих операторов foreach будут говорить что-то вроде:

оператор foreach не может работать с переменными типа 'System.Data.Objects.DataClasses.EntityCollection'потому что' System.Data.Objects.DataClasses.EntityCollection'не содержит общедоступного определения для' GetEnumerator '

Это пример .ascx из приложения Web Forms / MVC 2, где 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>
<%} %>

Thisмоя попытка преобразования .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 ]

2 голосов
/ 01 декабря 2011

Попробуйте добавить ссылку на System.Data.Linq.dll в свой проект

0 голосов
/ 23 октября 2013

Попробуйте добавить ссылку на System.Data.Entity.

...