【发布时间】:2011-11-12 22:18:57
【问题描述】:
我正在尝试使用视图模型实现 IPagedList,我的主视图声明是
@model PagedList.PagedList<CustomerOrders.WebUI.Models.SiteAdminListViewModel>
然后我有一个显示模板,它有以下声明
@model CustomerOrders.WebUI.Models.SiteAdminListViewModel
在我的控制器中,我将视图模型传递给视图
return View(new SiteAdminListViewModel(customerSites.ToPagedList(pageIndex, pageSize), customers.ToPagedList(pageIndex, pageSize)));
这会导致错误,“此字典需要'PagedList.PagedList'PagedList.PagedList1[CustomerOrders.WebUI.Models.SiteAdminListViewModel]'类型的模型项
我明白错误在说什么,但我不确定如何修改视图模型以包含 PagedList,有没有其他人经历过这个,或者谁能指出我正确的方向?
编辑///////////////
这是我的视图模型
public class SiteAdminListViewModel
{
public IEnumerable<CustomerSite> CustomerSites { get; set; }
public IEnumerable<Customer> Customers { get; set; }
public Customer Cust { get; set; }
public CustomerSite CustSite { get; set; }
public bool HasPreviousPage { get; set; }
public bool HasNextPage { get; set; }
public int PageCount { get; set; }
public int PageNumber { get; set; }
public SiteAdminListViewModel()
{
}
public SiteAdminListViewModel(IEnumerable <CustomerSite> customerSites, IEnumerable<Customer> customers)
{
CustomerSites = customerSites;
Customers = customers;
}
}
这是显示模板的sn-p ///////////
@model CustomerOrders.WebUI.Models.SiteAdminListViewModel
@using (Html.BeginForm())
{
<p class="search-controls">
Find site by postcode: @Html.TextBox("SearchString")
<input type="submit" value="Search" /></p>
}
<td>
@Model.CustSite.CustomerSiteId
</td>
<td>
@Html.ActionLink(Model.Cust.CustomerName, "Edit", new { Model.CustSite.CustomerSiteId })
</td>
<td>
@Model.CustSite.AddressLine1
</td>
<td>
@Model.CustSite.Town
</td>
【问题讨论】:
-
您没有提供足够的信息,也没有提供水晶球。视图模型是什么样的?显示模板? PagedList 应该专门用于 SiteAdminListModel 似乎是错误的。你明白 PagedList 是什么意思吗?
-
@awrigley,您好,我很抱歉,我没有立即包含视图模型代码,因为我经常发现当帖子太深入时它没有得到响应,我已经用视图模型代码更新了帖子,我一直在关注 MVC 网站上的排序和分页教程,他们的代码在视图声明中使用 PagedList,但他们不使用视图模型。
-
PagedList 的代码是什么样的? Customer.ToPagedList 的代码是什么?哪里抛出了异常?
标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-viewmodel pagedlist