【问题标题】:MVC view and enumerate a listMVC 查看并枚举列表
【发布时间】:2011-07-01 00:07:39
【问题描述】:

使用 MVC3,我的控制器中有这个。如何在视图中枚举它?

    public ActionResult NWaySwitch()
    {
        var switches = _nWaySwitch.Switches.Cast<Switch>().ToList(); 
       // var switches = _nWaySwitch.Switches;
        return View(switches);
    }

foreach 语句无法对“object”类型的变量进行操作,因为“object”不包含“GetEnumerator”的公共定义

@foreach(ViewData["switches"] 中的 System.Collections.ArrayList 项) {}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 view enumerable


    【解决方案1】:

    我猜你在这里做了一个强类型视图,对吧?如果您查看视图的顶部,您可能会看到模型定义。确保您在 IEnumerable 中进行此操作,您应该一切顺利

    【讨论】:

    • 我是新手,所以不,我没有使用强类型。
    • 做得好 return View(switches) 意味着您正在将模型传递给视图,因此预计您的视图是强类型的 Switch 模型,在这种情况下更特别是 IEnumerable 模型,以便您可以访问视图中的数据
    • 我想我明白了,但这会在视图 @foreach 中返回 Switch 的命名空间错误(ViewData["getSwitches"] 中的变量项为 IEnumerable
    • 这意味着应用不知道在哪里可以找到 Switch 型号。尝试提供整个命名空间(即 YourAppName.Models.Switch)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多