0

何が速いのか気になります。DB からクエリした情報を ViewBag に保存し、ビューにアクセスして表示するか、ビューで直接クエリを作成する必要があります。コントローラーは MVC の中間層であるため、コントローラーで DB にアクセスする方が高速であることは論理的に思えます。

例:

1)コントローラーでDBにアクセスし、ViewBagに情報を入れてViewに表示できるようにします。

コントローラ:

EVENT e = db.EVENT.Find(id);
ViewBag.event = e;

if (e.poster_id != null)
{
    poster = e.DATA.path;
}
ViewBag.dict_poster = poster;

見る:

<p>POSTER: @ViewBag.dict_poster;</p>

2)コントローラーでは、DBからの一般的なデータのみをViewBagに入れ、Viewでアクセスします。

コントローラ:

EVENT e = db.EVENT.Find(id);
ViewBag.event = e;

見る:

<p>
    @if(ViewBag.event.poster_id != null)
    {
        @ViewBag.event.DATA.path;
    }
</p>
  • どちらを使用するのがより適切で適切ですか?何が速いですか?
  • 非常に分岐した DB があり、すべてを "ViewBag.e" に保存する必要がある場合は、個々の値を ViewBags に保存して、ビューでそれらにアクセスするよりも速く、またはビューから直接アクセスする方が高速ですか?
  • リストはどうですか?(DB情報をリストに保存し、ViewBagに入れ、ビューでアクセスするよりも)

あなたの答えと追加の説明に感謝します....

4

1 に答える 1

2

ビューから直接データレイヤーにアクセスするべきではありません。これはコントローラーで行う必要があります。また、ViewBagを使用するのではなく、強く型付けされたビューモデルをビューに渡すことを検討してください。

使用の背後にある理由については、 http://theminimalistdeveloper.com/2010/08/21/why-when-and-how-to-use-typed-views-and-viewmodel-pattern-in-asp-net-mvc/を参照してください。 MVCでのビューモデルの一覧。

于 2011-08-09T13:56:28.483 に答える