我正在尝试为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>
答案 0 :(得分:1)
您传递到部分视图的视图模型属于 >> dig +short gmail.com mx
20 alt2.gmail-smtp-in.l.google.com.
10 alt1.gmail-smtp-in.l.google.com.
5 gmail-smtp-in.l.google.com.
40 alt4.gmail-smtp-in.l.google.com.
30 alt3.gmail-smtp-in.l.google.com.
>> telnet gmail-smtp-in.l.google.com 25
220 mx.google.com ESMTP c90si10657664pfd.233 - gsmtp
>>ehlo gmail.com
250-mx.google.com at your service,
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 SMTPUTF8
而非ProductTableViewModel
。因此,请务必相应地调整部分:
IEnumerable<ProductTableViewModel>
然后遍历模型的@model project_name.Models.ProductTableViewModel
属性,而不是模型本身:
Items