【问题标题】:Using PagedList with a viewmodel MVC 3将 PagedList 与视图模型 MVC 3 一起使用
【发布时间】: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") &nbsp;
    <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


【解决方案1】:

这是我发现的一个将 ViewModel 与 PagedList 结合使用的示例。

http://czetsuya-tech.blogspot.com/2011/05/mvc3-dynamic-search-paging-using.html

【讨论】:

    猜你喜欢
    • 2014-09-27
    • 2013-02-02
    • 1970-01-01
    • 2020-06-27
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    相关资源
    最近更新 更多