【发布时间】:2016-05-21 20:15:49
【问题描述】:
我正在尝试将分页添加到我的partialview
这就是模型类退出的方式
public class DashboardViewModel
{
public List<ProductTableViewModel> ProductTable;
}
public class ProductTableViewModel
{
public string Product_ID { get; set; }
public string Product_Title { get; set; }
public IEnumerable<ProductTableViewModel> Items { get; set; }
public PaginationModel.Pager Pager { get; set; }
public int PageSize { get; set; }
public int PageCount { get; set; }
public int CurrentPageIndex { get; set; }
}
这是控制器方法
public ActionResult ProductsTablePartial(int? page)
{
var allproducts = ..
var pager = new PaginationModel.Pager(allproducts.Count(), page);
var viewModel = new ProductTableViewModel
{
Items = allproducts.Skip((pager.CurrentPage - 1) * pager.PageSize).Take(pager.PageSize),
Pager = pager
};
return PartialView("ProductsTablePartial", viewModel);
}
这是主视图页面
@model project_name.Models.DashboardViewModel
@{
}
<div>
@Html.Action("ProductsTablePartial", "Home")
</div>
这是带有分页控件的局部视图
@model IEnumerable< project_name.Models.ProductTableViewModel>
<fieldset>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Product_ID)
</th>
<th>
@Html.DisplayNameFor(model => model.Product_Title)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Product_ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Product_Title)
</td>
</tr>
}
</table>
<!-- pager -->
<div class="col-md-10">
<!-- pager -->
@if (Model.Pager.EndPage > 1)
{
<ul class="pagination">
@if (Model.Pager.CurrentPage > 1)
{
<li>
<a>First</a>
</li>
<li>
<a>Previous</a>
</li>
}
@for (var page = Model.Pager.StartPage; page <= Model.Pager.EndPage; page++)
{
<li class="@(page == Model.Pager.CurrentPage ? "active" : "")">
<a>@page</a>
</li>
}
@if (Model.Pager.CurrentPage < Model.Pager.TotalPages)
{
<li>
<a>Next</a>
</li>
<li>
<a>Last</a>
</li>
}
</ul>
}
</div>
</fieldset>
此代码没有任何编译时错误,但在运行时出现过一次
我收到以下异常
IEnumerable<ProductTableViewModel>不包含 'Pager' 并且没有扩展方法 'Pager' 接受第一个参数 输入IEnumerable<ProductTableViewModel>
【问题讨论】:
-
该方法是不言自明的 - 您的模型是
IEnumerable<T>和IEnumerable<T>没有任何属性。PaginationModel.Pager是什么?
标签: c# asp.net-mvc asp.net-mvc-4 pagination partial-views