3

私は現在、ハイブリッド Web フォーム/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」の定義

これは、foreach が正常に機能する Web フォーム/MVC 2 アプリケーションの .ascx の例です。

<%@ 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>
}
4

2 に答える 2

2

プロジェクトに System.Data.Linq.dll への参照を追加してみてください

于 2011-11-30T20:15:44.963 に答える
0

System.Data.Entity への参照を追加してみてください。

于 2013-10-23T14:38:14.457 に答える