0

ASP .NET MVC3 を使用。

私のコントローラーには、このコードの部分があります

    MasterMindDnetEntities context = new MasterMindDnetEntities();
    List<MasterMindDnet.Games> Games = (from g in context.Games
                                        join u in context.Users on g.g_u_Id equals u.u_Id
                                        where u.u_Login == User.Identity.Name
                                        select g).ToList();
    @ViewBag.Games = Games;
    @ViewBag.GameCount = Games.Count;
    return View("Index");

コントロールでは、ゲームはリストとして正常に機能します。

私の見解では:

@for (int i = 0; i < ViewBag.GameCount; i++)
{
    ViewBag.Games = ViewBag.Games[i];

ViewBag.Games = ViewBag.Games[i];で、例外が発生します。

タイプ 'System.Data.Entity.DynamicProxies の式に [] を使用したインデックス作成を適用することはできません。

以前のバージョンではi < ViewBag.Games.Count;の代わりに があり、 には の定義がないi < ViewBag.GameCount;と言っていました。ViewBag.GamesCount

どうすればこれを解決できますか?

ご協力ありがとうございました。

4

1 に答える 1

1

動的プロキシの問題は、ViewBag の内容を「静的に」宣言する必要があることを意味します。

したがって、ビューで次のようにします。

@{
    List<MasterMindDnetGames> games = ViewBag.Games;

    for (var i = 0; i < games.Count; i++) {
       var game = games[i];//declare it in the scope you need
       //bla bla bla
    }
}
于 2012-04-08T11:47:30.960 に答える