@Html.PagedListPager 找不到
@Html.PagedListPager can't be found
我有一个 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 包、清理和重建解决方案,但似乎没有任何效果。我在这里错过了什么?
首先,你在这里有一个额外的转换:
@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:
不同
我有同样的问题,添加@using X.PagedList.Mvc.Core 会在智能感知中显示它。希望对您有所帮助。
上面的答案对我没有帮助,但我找到了一个可能对其他人也有帮助的解决方案。
改为:
@using X.PagedList.Mvc.Core
我还有一个仅使用 @using X.PagedList.Mvc
的 using 语句。我不明白为什么其他用户因为它有效而被否决。
我有一个 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 包、清理和重建解决方案,但似乎没有任何效果。我在这里错过了什么?
首先,你在这里有一个额外的转换:
@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:
不同我有同样的问题,添加@using X.PagedList.Mvc.Core 会在智能感知中显示它。希望对您有所帮助。
上面的答案对我没有帮助,但我找到了一个可能对其他人也有帮助的解决方案。
改为:
@using X.PagedList.Mvc.Core
我还有一个仅使用 @using X.PagedList.Mvc
的 using 语句。我不明白为什么其他用户因为它有效而被否决。