我想在我的MVC应用程序视图中运行一个foreach
循环。但是,在调试模式下,我可以看到它成功获得了列表。但是,我收到一个错误,说对象不包含pageNumber的定义。请注意,每个列表都提供了pageNumber。我做错了什么?
MVC查看代码:
@foreach (var button in ViewBag.PageButtons)
{
<li class="page-item"><a class="page-link" href="#">@button.pageNumber</a></li>
}
答案 0 :(得分:1)
您的错误对话框和消息在视图中显示button
的类型为object
。正如错误所述,.NET object
确实不包含pageNumber
的定义。在视图中,您需要将button
投射到您的类型。
新代码可能如下所示(CRLF是为了便于阅读):
@foreach (var button in ViewBag.PageButtons)
{
<li class="page-item">
<a class="page-link" href="#">
@(((YourClassNameHere)button).pageNumber)
</a>
</li>
}
您需要将YourClassNameHere
替换为您用于定义发送到视图的列表元素的类名。
答案 1 :(得分:0)
ViewBag 动态,因此您需要将button
用于调用.pageNumber
才能正常工作:
@((button as PageButton).pageNumber)
或
@(((PageButton)button).pageNumber)