【发布时间】:2021-10-05 19:29:11
【问题描述】:
我为任何使用分页的视图模型设置了一个模式,以及将在整个站点中使用的单个视图。
所以给定这个界面:
public interface IPaginationModel<T> where T : class
{
IPagedList<T> PagedCollection { get; set; }
int ItemsPerPage { get; set; }
int PageIndex { get; set; }
int TotalPages { get; set; }
}
还有这个模型
public class CollectionsViewModel : IPaginationModel<CollectionModel>
{
public IEnumerable<CollectionModel> Collections { get; set; }
public IPagedList<CollectionModel> PagedCollection { get; set; }
public int ItemsPerPage { get; set; }
public int PageIndex { get; set; }
public int TotalPages { get; set; }
public CollectionsViewModel()
{
}
}
我想以这样的方式使用视图/.cshtml...
@model Solnet.TeddyPicker.Generator.Models.Pagination.IPaginationModel<T>
@Html.PagedListPager(Model.PagedCollection, page => Url.Action("Index", new { pagesize = Model.ItemsPerPage, page = Model.PageIndex }),
new X.PagedList.Web.Common.PagedListRenderOptions()
{
LiElementClasses = new string[] { "page-item" },
PageClasses = new string[] { "page-link" },
Display = X.PagedList.Web.Common.PagedListDisplayMode.Always
})
但它不喜欢'T',找不到命名空间。那么有没有办法让视图接受这种泛型类型?
【问题讨论】:
标签: asp.net-mvc asp.net-core generics pagedlist