0

コントローラがあり、インデックス ページがある場合:

@model IEnumerable<MvcMovie.Models.Movie>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<table>
    <tr>
        <th>
            Title
        </th>
        ....
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        ....
    </tr>
}

</table>

を使用する利点は@model IEnumerable<Movie>何ですか? ViewBag.MoviesController で定義してそれを index ページで使用できないのはなぜですか?

4

2 に答える 2

2

を使用する利点@model IEnumerable<Movie>は、前もって明確に説明できることです。このビューは (an) を表示するためのものIEnumerable<Movie>です。いくつかの追加情報 ( に保存されますViewBag)を使用する場合がありますが、これIEnumerable<Movie>は表示することを意図したものです。これが概念的な理由であり、MVC デザイン パターンの概念と大きく関係しています。もちろん、@Tridusが言ったように技術的な理由もあります。

于 2011-06-07T14:29:06.413 に答える
2

厳密に言えば、できます。ただし、ビューに何か他のものを渡すと、Intellisense の利点や単純な「これは間違った型です」というエラーが得られません。また、コンパイル時にビューのコンパイルを有効にすると、エラーが発生しなくなります (ただし、デフォルトでは無効になっているため、メリットは少なくなります)。

于 2011-06-07T14:16:44.330 に答える