В настоящее время я нахожусь в процессе преобразования части 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>
}