簡體   English   中英

為什么我們有 ViewBag 和 ViewData,如果它們在 ASP.NET Core MVC 中做同樣的事情

[英]Why do we have ViewBag and ViewData, if they are doing the same thing in ASP.NET Core MVC

如果ViewBagViewData在 ASP.NET Core MVC 中做同樣的事情,為什么我們會有它們? 有什么是ViewBag可以做而ViewData不能做的 - 反之亦然?

任何特定情況下我應該何時更喜歡其中一個?

它們相似,但主要區別在於 ViewBag 使用動態類型,允許使用不太復雜的語法。

ViewBag.Example=DateTime.Now;

<p>Result: ViewBag.Example.Year </p>

與此相反,與 ViewData 相同的可能是:

ViewData["Example"]=DateTime.Now;

<p>Result: @((ViewData["Example"] As DateTime).Year) </p>

因此,使用 ViewData 您需要強制轉換,並且在執行“重命名”時可能會收到錯誤,例如,您將無法獲得 Intellisense 的幫助。

此外,它似乎“更慢”(但不足以成為問題)。 示例: MVC 中的 ViewBag 與 ViewData 性能差異?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM