0

ビュー内のセッション データに直接アクセスするか、コントローラにロードしてビューバッグを使用してビューに渡すか、設計とコーディングの観点からどちらが優れていますか?

4

3 に答える 3

0

最善の方法は、コントローラーでセッションにアクセスすることです。どうして:

  • パフォーマンス。Session オブジェクトへのアクセス方法を細かく制御できます。セッションのプロパティのみを読み取る必要がある場合は、セッションへの読み取り専用アクセスが必要であることを指定します。MVC はセッションをブロックしません。パフォーマンスが向上します。

  • 純粋さ。純粋な MVC シナリオでは、ビューはモデルについてのみ認識します。したがって、セッションで重要な値はモデルの一部として渡す必要があります。

于 2013-09-14T22:04:54.903 に答える
0

本当にセッションを使用する必要がある場合は、サーバー側でそのデータを取得し、ViewBag を使用するのではなく、ビュー モデルの厳密に型指定されたプロパティを使用してビューに渡す必要があります。

したがって、ビュー モデルに型のプロパティがあり、IENumerable<SelectListItem>ビュー内で Html.DropDownListFor ヘルパーの厳密に型指定されたバージョンを使用して、この方法でモデルにバインドするとします。

@Html.DropDownListFor(x => x.ProductId, Model.Products)
于 2013-09-14T20:34:41.113 に答える