object不包含pageNumber的定义

时间:2018-04-04 11:57:12

标签: asp.net-mvc

我想在我的MVC应用程序视图中运行一个foreach循环。但是,在调试模式下,我可以看到它成功获得了列表。但是,我收到一个错误,说对象不包含pageNumber的定义。请注意,每个列表都提供了pageNumber。我做错了什么?

MVC查看代码:

@foreach (var button in ViewBag.PageButtons)
    {
        <li class="page-item"><a class="page-link" href="#">@button.pageNumber</a></li>
    }

Debug Picture

Error picture

2 个答案:

答案 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)