У меня есть представление Index Razor (MVC5 C #), которое просто отображает список данных из таблицы с именем ICS_Supplies.Это хорошо, за исключением того, что имеется много строк данных, и, следовательно, заполнение представления может занять много времени.Таким образом, необходима нумерация страниц.Я пришел из старых форм asp.net с VB.net, где нумерация страниц довольно проста.MVC5 и C # все еще довольно новы.,и у меня проблемы с его работой.
Вот где я нахожусь.Моя модель:
namespace ICS20web.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
using PagedList;
public partial class ICS_Supplies
{
[Key]
public int Supplies_ID { get; set; }
[StringLength(25)]
public string Old_ItemID { get; set; }
[StringLength(80)]
public string ItemDescription { get; set; }
public int? OnHand { get; set; }
public int? ReorderLevel { get; set; }
public int? ReorderAmt { get; set; }
[StringLength(10)]
public string UnitMeasure { get; set; }
[StringLength(30)]
public string SupplyLocation { get; set; }
[StringLength(1)]
public string InvType { get; set; }
[StringLength(1)]
public string Discontinued { get; set; }
}
}
Вот мой контроллер для индекса
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using ICS20web.Models;
using PagedList;
namespace ICS20web.Controllers
{
public class SuppliesController : Controller
{
private ICS_Internal_Transactions db = new ICS_Internal_Transactions();
// GET: Supplies
public ActionResult Index()
{
var supplies = db.ICS_Supplies.OrderByDescending(g => g.Supplies_ID).ToList();
var model = new PagedList<ICS_Supplies>(supplies, 1, 10);
return View(model);
}
А вот мой код просмотра
@model PagedList.IPagedList<ICS20web.Models.ICS_Supplies>
@using PagedList.Mvc;
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Old_ItemID)
</th>
<th>
@Html.DisplayNameFor(model => model.ItemDescription)
</th>
<th>
@Html.DisplayNameFor(model => model.OnHand)
</th>
<th>
@Html.DisplayNameFor(model => model.ReorderLevel)
</th>
<th>
@Html.DisplayNameFor(model => model.ReorderAmt)
</th>
<th>
@Html.DisplayNameFor(model => model.UnitMeasure)
</th>
<th>
@Html.DisplayNameFor(model => model.SupplyLocation)
</th>
<th>
@Html.DisplayNameFor(model => model.InvType)
</th>
<th>
@Html.DisplayNameFor(model => model.Discontinued)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Old_ItemID)
</td>
<td>
@Html.DisplayFor(modelItem => item.ItemDescription)
</td>
<td>
@Html.DisplayFor(modelItem => item.OnHand)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReorderLevel)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReorderAmt)
</td>
<td>
@Html.DisplayFor(modelItem => item.UnitMeasure)
</td>
<td>
@Html.DisplayFor(modelItem => item.SupplyLocation)
</td>
<td>
@Html.DisplayFor(modelItem => item.InvType)
</td>
<td>
@Html.DisplayFor(modelItem => item.Discontinued)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Supplies_ID }) |
@Html.ActionLink("Details", "Details", new { id=item.Supplies_ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Supplies_ID })
</td>
</tr>
}
</table>
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, pagesize = 5 }))
Я установил PagedList.MVC Nuget идобавил соответствующие ссылки в мой файл View Web.Config, как указано в инструкции.
В настоящее время я получаю следующую ошибку при попытке загрузки страницы:
Сообщение об ошибке компилятора: CS1061: «IPagedList» не содержит определения для «Old_ItemID» и не имеет метода расширения «Old_ItemID»'можно найти принятие первого аргумента типа' IPagedList '(вам не хватает директивы using или ссылки на сборку?)
Первое, что я сделал, это удалил объект' Old_ItemID 'из представления, но затемта же ошибка генерируется со следующим объектом.
Я пытаюсь исправить ошибку.Похоже, это говорит мне о том, что в IPagedLIST нет определения для Old_ItemID, однако, когда я смотрю на модель ICS_Supplies, определение есть.Я неправильно настроил контроллер?Я заблудился относительно того, где искать дальше.