0
Mine是一個asp.net mvc應用程序。我有一個超過25行的索引視圖。這使得我的頁面渲染緩慢。我需要在這裏實施分頁。我想限制行數爲6左右。請有人可以幫我解決這個問題嗎?在asp.net中爲我的索引視圖添加分頁mvc
Mine是一個asp.net mvc應用程序。我有一個超過25行的索引視圖。這使得我的頁面渲染緩慢。我需要在這裏實施分頁。我想限制行數爲6左右。請有人可以幫我解決這個問題嗎?在asp.net中爲我的索引視圖添加分頁mvc
型號:
namespace Comtesys.WebUI.Models
{
public class PagingInfo
{
public int TotalItems { get; set; }
public int ItemsPerPage { get; set; }
public int CurrentPage { get; set; }
public int TotalPages
{
get { return (int)Math.Ceiling((decimal)TotalItems/ItemsPerPage); }
}
}
}
的HtmlHelper:
namespace Comtesys.WebUI.HtmlHelpers
{
public static class PagingHelpers
{
public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl)
{
StringBuilder result = new StringBuilder();
for (int i = 1; i <= pagingInfo.TotalPages; i++)
{
TagBuilder tag = new TagBuilder("a"); // Construct an <a> tag
tag.MergeAttribute("href", pageUrl(i));
tag.InnerHtml = i.ToString();
if (i == pagingInfo.CurrentPage)
tag.AddCssClass("selected");
result.AppendLine(tag.ToString());
}
return MvcHtmlString.Create(result.ToString());
}
}
}
控制器:
public ActionResult List(int page = 1)
{
public int PageSize = 6;
var viewModel = new YourModel
{
ListItems = _repository.SomeCollection,
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = _repository.SomeCollection.Count()
}
};
return View(viewModel);
}
使用:
<div class="pager">
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new { page = x }))
</div>
對於分頁結果我使用PagedList它很容易使用,小巧幹淨。 (當然還有很好的文檔和樣本)。
如何小號控制器應該如何? –