ViewBag迭代问题

时间:2011-07-29 22:48:09

标签: asp.net-mvc-3

我在迭代ViewBag对象时收到消息“'object'不包含'id'的定义:

@foreach (var f in ViewBag.FundsCenters)
{
    <tr>
        <td>@f.id
        </td>
    </tr>
}

然而在立即窗口中我看到:

@f
{ id = 0, center = Top-Level, title = title, amount = 0 }
    amount: 0
    center: "Top-Level"
    id: 0
    title: "title"

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

动态不能跨域边界很好地转换。 ViewBag适用于页面标题或一些简单消息之类的内容,并不打算另外使用。

如果你真的想要使用它(假设它不是一个匿名对象),你可以将f转换为它所对应的类型。 @(((FundCenter)f).id)否则最好的建议是使用您的模型将其传递到页面。

答案 1 :(得分:0)

循环中的项目区分大小写。 E.G

@ item.firstName在这种情况下与@ item.FirstName不同...所以如果你的模型是f.Id也许代替f.id你将得到一个错误。

同样的事情发生在你的淘汰模型时。