Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net System.Web.Mvc.HtmlHelper<;动态>;Html.PagedListPager上出现异常_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Razor_Pagedlist - Fatal编程技术网

Asp.net System.Web.Mvc.HtmlHelper<;动态>;Html.PagedListPager上出现异常

Asp.net System.Web.Mvc.HtmlHelper<;动态>;Html.PagedListPager上出现异常,asp.net,asp.net-mvc,asp.net-mvc-4,razor,pagedlist,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,Pagedlist,当我尝试使用我的aspx文件时 @using PagedList.Mvc; ... @Html.PagedListPager(ViewBag.test, page => Url.Action("Test", new { page })). 我将收到此错误消息 'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'PagedListPager' but appears to have an

当我尝试使用我的aspx文件时

 @using PagedList.Mvc;
 ...
 @Html.PagedListPager(ViewBag.test, page => Url.Action("Test", new { page })).
我将收到此错误消息

'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'PagedListPager' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.
“System.Web.Mvc.HtmlHelper”没有名为“PagedListPager”的适用方法,但似乎有一个同名的扩展方法。无法动态调度扩展方法。考虑在不使用扩展方法语法的情况下强制转换动态参数或调用扩展方法。
我的.cs文件代码如下所示

    using PagedList;
    private List<Quality> Qualitys()
    {
        List<Quality> Qualitys = new List<Quality>()
        {
            new Quality(){ID=1,Name="All Qualitys"},
            new Quality(){ID=2,Name="1"},
            new Quality(){ID=3,Name="2"},
            new Quality(){ID=4,Name="3"},
            new Quality(){ID=5,Name="4"},
            new Quality(){ID=6,Name="5"}
        };

        return Qualitys;
    }

    public ActionResult Test(int? page)
    {
        int pageSize = 3;
        int pageNumber = page ?? 1;

        ViewBag.test = Qualitys().ToPagedList(pageNumber, pageSize);
        return View();
    }
使用页面列表;
私有列表质量()
{
列表质量s=新列表()
{
新质量(){ID=1,Name=“所有质量”},
新质量(){ID=2,Name=“1”},
新质量(){ID=3,Name=“2”},
新质量(){ID=4,Name=“3”},
新质量(){ID=5,Name=“4”},
新质量(){ID=6,Name=“5”}
};
退货质量;
}
公共行动结果测试(int?第页)
{
int pageSize=3;
int pageNumber=第1页;
ViewBag.test=Qualitys().ToPagedList(页码、页面大小);
返回视图();
}
在我的~Views/Web.config文件中,我将有一个

  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization"/>
    <add namespace="System.Web.Routing" />
    <add namespace="Web" />
  </namespaces>


我不明白为什么我会出现此错误,请帮助。

您需要将动态属性(在本例中为
ViewBag.test
)强制转换为所需的类型。应该是

@Html.PagedListPager((IPagedList)ViewBag.test, page => Url.Action("Test", new { page }))

您是否包含了dll/reference?只需在pagedlistpager中将您的viewbag类型转换为(字符串)viewbag.test应添加dll,我的引用下有PagedList和PagedList.Mvc。所有这些强制转换都不起作用。请尝试
@Html.PagedListPager((IPagedList)ViewBag.test,page…
(您需要将ViewBag属性强制转换为所需的类型)它解决了问题!但ist ViewBag.test已经是IPagedList的一种类型了吗?