2012-10-07 95 views
2

在ViewBag中多次訪問相同值的View中,將此值存儲在本地變量中而不是經常訪問ViewBag對象會更好嗎?ViewBag訪問性能

回答

3

ViewBag只是一個圍繞ViewData的動態包裝。所以當你寫ViewBag.Foo你基本上是查詢ViewData["Foo"]。但是,由於這是在運行時完成的動態分辨率,因此顯然會有成本。這個代價是你不應該擔心的,因爲它太小了,不會顯着影響你的應用程序的性能,我也不會將結果緩存到局部變量中。

我會打擾的是ViewBag的使用,我絕對會傾向於如果查看模型擺脫。因此,而不是寫作@ViewBag.Foo您將有一個視圖模型的Foo屬性,並在您的視圖內,您將簡單地使用它 - @Model.Foo。而且正如你所知道的一個調用一個屬性獲得者將會快速發展。它不僅速度很快,而且在您的觀點中您將受益於強大的打字和智能感知。