【问题标题】:System.Web.Mvc.HtmlHelper<dynamic> exception on Html.PagedListPagerHtml.PagedListPager 上的 System.Web.Mvc.HtmlHelper<dynamic> 异常
【发布时间】:2014-09-12 20:48:47
【问题描述】:

当我尝试使用我的 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.

我的 .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();
    }

在我的 ~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>

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

【问题讨论】:

  • 您是否包含了 dll/引用?
  • 只需在 pagedlistpager 中键入 cast ur viewbag 作为 (String)ViewBag.test
  • 应该添加dll,我的引用下有PagedList和PagedList.Mvc。 Allso that cast did not work.
  • 试试@Html.PagedListPager((IPagedList)ViewBag.test, page...(需要将viewbag属性转换成需要的类型)
  • 问题解决了!但是 ViewBag.test 已经是 IPagedList 的一种了吗?

标签: asp.net asp.net-mvc asp.net-mvc-4 razor pagedlist


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多