ViewBag像数组一样使用

时间:2019-05-04 13:03:02

标签: asp.net-mvc model-view-controller

我正在学习一个MVC教程,该教程在ASP.NET中教授有关ViewBags的知识。它从不涉及ViewBag的真正含义,它只是向您显示何时以及如何使用它。我遇到了下面的代码,在我不认为ViewBag是数组的情况下,它似乎将ViewBag视为该数组中的一个数组。

@for(int i = 0; i <= ViewBag.Items; i++)
    {
        <li>ViewBag.Items[i]</li>
    } 

什么是ViewBag?数据字典?收藏吗数组?从我可以研究的内容看,它似乎是一本字典,但是我似乎找不到一个明确的答案,因为我发现的资源只是告诉您如何以及何时使用它。我看了一下,但是信息非常稀疏,对我来说还不是很清楚。

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.controllerbase.viewbag?view=aspnet-mvc-5.2

请注意,尽管我有相当不错的一般理解,但是我的C#技能还不是很全面。如何将其视为数组?

此外,为什么我在for循环中<= ViewBag.Items而不是ViewBag.Items.Count?没有讲师的解释,他只是使用它,而从不解释这种差异。感谢您为消除我的误会提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

ViewBag实际上是System.Dynamic.ExpandoObjectsource

对于您共享的ViewBag的示例没有用作array,实际上它的Items属性是array,这是{{1} }(ViewBag)

System.Dynamic.ExpandoObject

Live Demo