无法找到@ Html.PagedListPager

时间:2017-11-23 10:41:02

标签: c# pagedlist asp.net-core-mvc-2.0

我有一个ASP.NET.CORE 2.0应用程序,我想在我的网站上添加分页。我从Troy Goode PagedList开始,但我得到了同样的错误,我去尝试X版本,但仍然得到了相同的结果。

Reference to type 'HtmlString' claims it is defined in 'System.Web', but it could not be found
@Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page }))

我甚至无法在intellisense中找到方法@Html.PagedListPager 更新:它没有在一个全新的空项目上工作

@using X.PagedList.Mvc; @*import this so we get our HTML Helper*@
@using X.PagedList; 
@model IPagedList<StecajneObjave.Models.ViewModels.ObjavaViewModel>



<p>
     <a asp-action="Create">Create New</a>
</p>
    <table class="table">
   <tbody>
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.DatumObjave)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.NazivStecajnogDuznika)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.OIBStecajnogDuznika)
        </td>

        <td>
            @Html.ActionLink("Delaji", "Details", new { id = item.Id }) 
        </td>
    </tr>
}
   </tbody>
  </table>

<h3>Minimal Paging Control w/ Page Count Text</h3>
@Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page }))

我尝试重新安装nuget包,清理和重建解决方案,但似乎没有任何效果。我在这里缺少什么?

3 个答案:

答案 0 :(得分:6)

上面的答案对我没有帮助,但我发现了一个可能对其他人有帮助的解决方案。

更改为:

@using X.PagedList.Mvc.Core

我还有一个仅使用@using X.PagedList.Mvc的using语句。我不知道为什么其他用户被投票,因为它有效。

答案 1 :(得分:0)

首先,您在这里有额外转化

@Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page }))

这是因为您的模型已经是IPagedList:

@model IPagedList<StecajneObjave.Models.ViewModels.ObjavaViewModel>

所以你只需要在分页列表中做到:

@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

其次,您正在传递Url.Action但忘记参数

 @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

应该是:

@Html.PagedListPager(Model, page => Url.Action("Controller","Action", new { page }))

修改

参见asp .net core 2 HtmlString的参考资料,它与Asp.Net MVC不同:

HtmlString documantation

答案 2 :(得分:0)

我遇到了同样的问题并添加了@using X.PagedList.Mvc.Core将在intellisense中显示它。希望这有帮助。