我正在尝试使用 PagedList 来获取一些票的分页列表。
我使用的模型如下:
public class TicketIndexModel
{
public IEnumerable<Ticket> ticketList { get; set; }
public string TicketTitle { get; set; }
public string TicketDescription { get; set; }
}
在控制器中我发送到视图:
TicketIndexModel indexTicketList = new TicketIndexModel();
indexTicketList.ticketList = db.Tickets.Where(r => r.UserName == currentUserName).ToList().OrderByDescending(r => r.DateCreated);
return View(indexTicketList.ticketList.ToPagedList(pageNumber,pageSize));
在视图中我有两件事,所有票的列表和添加另一张票的简单表格。这是一个小代码:
@model PagedList.IPagedList<CDS.Models.TicketIndexModel>
@foreach (var row in Model)
{
foreach(var item in row.ticketList){
// the list of tickets
}
}
但我的问题在于添加新票的形式
@Html.LabelFor(model => model.TicketTitle)
model.TicketTitle 不可访问。
我怎样才能解决这个问题 ?还是您建议我使用不同的寻呼系统?
编辑 :
我在控制器中进行了您所说的更改,在视图中切换到 TicketIndexModel,将我的模型更改为使用 IPagedList。
我还添加了以下代码:Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@if (Model.HasPreviousPage)
{
@Html.ActionLink("<<", "Index", new { page = 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
@Html.Raw(" ");
@Html.ActionLink("< Prev", "Index", new { page = Model.PageNumber - 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
}
else
{
@:<<
@Html.Raw(" ");
@:< Prev
}
@if (Model.HasNextPage)
{
@Html.ActionLink("Next >", "Index", new { page = Model.PageNumber + 1, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
@Html.Raw(" ");
@Html.ActionLink(">>", "Index", new { page = Model.PageCount, sortOrder = ViewBag.CurrentSort, currentFilter=ViewBag.CurrentFilter })
}
else
{
@:Next >
@Html.Raw(" ")
@:>>
}
但是现在我收到此错误
Models.TicketIndexModel' does not contain a definition for 'PageCount' 并且没有扩展方法 'PageCount' 接受类型为'Models.TicketIndexModel' 的第一个参数可以找到(您是否缺少 using 指令或程序集参考?)
我应该改变模型吗?我不知道该怎么做,这是我第一次使用它,而且我在 3 个月前才开始使用 MVC。