在"程序包管理器控制台"里输入:
安装ef框架: install-package entityframework
安装分页: install-package pagedlist
install-package pagedlist.mvc
controller层代码截图如下:
public ActionResult Index(string searchString, string sortOrder, string currentFilter, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var Contacts = from c in db.Contacts select c;
if (!string.IsNullOrEmpty(searchString))
{
Contacts = Contacts.Where(s => s.Name.Contains(searchString));
}
switch (sortOrder)
{
case "name_desc":
Contacts = Contacts.OrderByDescending(s => s.Name);
break;
default: // Name ascending
Contacts = Contacts.OrderBy(s => s.Name);
break;
}
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(Contacts.ToPagedList(pageNumber, pageSize));
}
view层显示代码如下:
@model PagedList.IPagedList<mailList.Models.Contact>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm("Index", "Contacts", FormMethod.Get))
{
<p>
姓名:@Html.TextBox("SearchString", ViewBag.CurrentFilter as string)
<input type="submit" value="搜索" />
</p>
}
<table class="table">
<tr>
<th>
@Html.ActionLink("姓名", "Index", new { sortOrder = ViewBag.NameSortParm, currentFilter = ViewBag.CurrentFilter })
</th>
<th>
性别
</th>
<th>
手机号码
</th>
<th>
QQ号码
</th>
<th>
备注
</th>
<th>
操作
</th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Sex)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhoneNum)
</td>
<td>
@Html.DisplayFor(modelItem => item.QQ)
</td>
<td>
@Html.DisplayFor(modelItem => item.Remark)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
@Html.ActionLink("Details", "Details", new { id=item.ID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
</table>
<br />
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount;
@Html.PagedListPager(Model, page => Url.Action("Index",
new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
希望看到的自己写一遍代码,并根据个人实际情况改变代码。