【发布时间】: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