3

ViewBag から同じ値に複数回アクセスするビューでは、ViewBag オブジェクトに頻繁にアクセスするよりも、この値をローカル変数に格納した方がよいでしょうか?

4

1 に答える 1

4

ViewBagの動的ラッパーViewDataです。したがって、書くViewBag.Fooときは基本的にクエリを実行していますViewData["Foo"]。しかし、これは実行時に行われる動的な解決であるため、明らかにコストがかかります。このコストは気にする必要はありません。非常に小さいため、アプリケーションのパフォーマンスに大きな影響を与えることはなく、わざわざ結果をローカル変数にキャッシュすることもありません。

私が気になるのは、モデルを表示する場合に最も確実に取り除く ViewBag の使用です。したがって、記述する代わりに@ViewBag.Foo、ビューモデルの Foo プロパティを使用し、ビュー内でそれを操作するだけです - @Model.Foo. ご存知のように、プロパティ ゲッターの呼び出しは非常に高速です。高速になるだけでなく、強力なタイピングとビューでの Intellisense の恩恵を受けることができます。

于 2012-10-08T17:03:58.470 に答える