3

私はMVCを学習していて、モデルの暗黙的に型指定された変数を作成しようとしていますが、ビューでそれを参照する方法がわかりません@model IEnumerable<???>

コントローラ...

public ActionResult Users() {
    var model = from MembershipUser u in Membership.GetAllUsers()
                select new {user = u, roles = string.Join(", ", Roles.GetRolesForUser(u.UserName))};

    View(model);
}
4

3 に答える 3

3

ビュー(またはそのローカルスコープ外)で匿名型変数を参照することはできません。動的タイプを使用することが可能です。

@model IEnumerable<dynamic>

ただし、この方法では、Intellisense/コンパイル時の型チェックはありません。最善のアプローチは、モデルのクラスを作成することです。

于 2012-08-22T02:00:19.610 に答える
1

それはあなたが返す匿名のタイプです。実際のタイプを使いたくなると思います。クエリで選択しているものがない場合は、作成することをお勧めします。

タイプを取得したら、ビューでの使用例を次に示します。

これは私の見解の最初の行です:

@model IEnumerable<AutoTrackerCommon.Entities.TrackerJob>

そして私はそれをWebGridで使用しています:

@{
    var grid = new @WebGrid(
        source: Model,
        rowsPerPage: 10);
}
于 2012-08-22T01:57:20.053 に答える
1

あなたはそれをとして参照しModelますが、なぜあなたはそのようなことをするのですか?ViewModelsを使用し、型指定されていないモデルや暗黙的に型指定されたモデルを使用しないでください。作業するのは悪夢です。IDEサポートから自動検証まですべてが失われます。不必要にあなたの人生を複雑にしないでください。ビューモデル(または強く型付けされたビュー)が最適です。

これについて読むのに良い記事:ASP.NETMVCでモデルを表示します

これがあなたと幸運の助けになることを願っています

于 2012-08-22T02:04:31.767 に答える