【问题标题】:@Html.PagedListPager can't be found找不到@Html.PagedListPager
【发布时间】:2017-11-23 10:41:02
【问题描述】:

我有一个 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 }))

我什至无法在智能感知中找到方法@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 包、清理和重建解决方案,但似乎没有任何效果。我在这里错过了什么?

【问题讨论】:

  • 听起来那个插件不支持 MVC Core
  • 对 .Net core 2.1 框架使用 X.PagedList 和 X.PagedList.Mvc.Core 7.5.0 版本。最新版本无法在 .net core 2.1 中运行。

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


【解决方案1】:

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

改为:

@using X.PagedList.Mvc.Core

我还有一个 using 语句,它只使用 @using X.PagedList.Mvc。我不明白为什么其他用户投票失败,因为它有效。

【讨论】:

  • 你是救生员。他们的 GitHub 页面没有 Core 部分,所以它让我失望:github.com/dncuug/X.PagedList
  • 你拯救了我的一天,谢谢
【解决方案2】:

首先,您有一个额外的转化

@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

【讨论】:

【解决方案3】:

我遇到了同样的问题,添加 @using X.PagedList.Mvc.Core 将在智能感知中显示它。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2014-09-12
    • 1970-01-01
    • 2015-09-12
    • 2015-04-27
    • 2019-07-23
    • 2021-06-19
    相关资源
    最近更新 更多