日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

MVC学习以及研究

發(fā)布時(shí)間:2025/3/20 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC学习以及研究 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ASP.NET.MVC4 高級(jí)編程學(xué)習(xí)資料

25M?PDF?507頁(yè) 進(jìn)入下載 ?點(diǎn)擊Professional.ASP.NET.MVC

?

andrewdavey-NotFoundMvc? 鏈接

martijnboland-MvcPaging? 鏈接


IPagedList.cs

using System.Collections.Generic;namespace MvcPaging{ public interface IPagedList { int PageCount { get; } int TotalItemCount { get; } int PageIndex { get; } int PageNumber { get; } int PageSize { get; } bool HasPreviousPage { get; } bool HasNextPage { get; } bool IsFirstPage { get; } bool IsLastPage { get; } int ItemStart { get; } int ItemEnd { get; } } public interface IPagedList<T> : IPagedList, IList<T> { }}
PagedList.cs using System; using System.Collections.Generic; using System.Linq; namespace MvcPaging { public class PagedList<T> : List<T>, IPagedList<T> { public PagedList(IEnumerable<T> source, int index, int pageSize, int? totalCount = null) : this(source.AsQueryable(), index, pageSize, totalCount) { } public PagedList(IQueryable<T> source, int index, int pageSize, int? totalCount = null) { if (index < 0) throw new ArgumentOutOfRangeException("index", "Value can not be below 0."); if (pageSize < 1) throw new ArgumentOutOfRangeException("pageSize", "Value can not be less than 1."); if (source == null) source = new List<T>().AsQueryable(); var realTotalCount = source.Count(); PageSize = pageSize; PageIndex = index; TotalItemCount = totalCount.HasValue ? totalCount.Value : realTotalCount; PageCount = TotalItemCount > 0 ? (int)Math.Ceiling(TotalItemCount / (double)PageSize) : 0; HasPreviousPage = (PageIndex > 0); HasNextPage = (PageIndex < (PageCount - 1)); IsFirstPage = (PageIndex <= 0); IsLastPage = (PageIndex >= (PageCount - 1)); ItemStart = PageIndex * PageSize + 1; ItemEnd = Math.Min(PageIndex * PageSize + PageSize, TotalItemCount); if (TotalItemCount <= 0) return; var realTotalPages = (int)Math.Ceiling(realTotalCount / (double)PageSize); if (realTotalCount < TotalItemCount && realTotalPages <= PageIndex) AddRange(source.Skip((realTotalPages - 1) * PageSize).Take(PageSize)); else AddRange(source.Skip(PageIndex * PageSize).Take(PageSize)); } #region IPagedList Members public int PageCount { get; private set; } public int TotalItemCount { get; private set; } public int PageIndex { get; private set; } public int PageNumber { get { return PageIndex + 1; } } public int PageSize { get; private set; } public bool HasPreviousPage { get; private set; } public bool HasNextPage { get; private set; } public bool IsFirstPage { get; private set; } public bool IsLastPage { get; private set; } public int ItemStart { get; private set; } public int ItemEnd { get; private set; } #endregion } }


Pager.cs

using System; using System.Text; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; using System.Web.Routing; namespace MvcPaging { public class Pager { private ViewContext viewContext; private readonly int pageSize; private readonly int currentPage; private readonly int totalItemCount; private readonly RouteValueDictionary linkWithoutPageValuesDictionary; private readonly AjaxOptions ajaxOptions; public Pager(ViewContext viewContext, int pageSize, int currentPage, int totalItemCount, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions) { this.viewContext = viewContext; this.pageSize = pageSize; this.currentPage = currentPage; this.totalItemCount = totalItemCount; this.linkWithoutPageValuesDictionary = valuesDictionary; this.ajaxOptions = ajaxOptions; } public HtmlString RenderHtml() { var pageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize); const int nrOfPagesToDisplay = 10; var sb = new StringBuilder(); // Previous sb.Append(currentPage > 1 ? GeneratePageLink("&lt;", currentPage - 1) : "<span class=\"disabled\">&lt;</span>"); var start = 1; var end = pageCount; if (pageCount > nrOfPagesToDisplay) { var middle = (int)Math.Ceiling(nrOfPagesToDisplay / 2d) - 1; var below = (currentPage - middle); var above = (currentPage + middle); if (below < 4) { above = nrOfPagesToDisplay; below = 1; } else if (above > (pageCount - 4)) { above = pageCount; below = (pageCount - nrOfPagesToDisplay + 1); } start = below; end = above; } if (start > 1) { sb.Append(GeneratePageLink("1", 1)); if (start > 3) { sb.Append(GeneratePageLink("2", 2)); } if (start > 2) { sb.Append("..."); } } for (var i = start; i <= end; i++) { if (i == currentPage || (currentPage <= 0 && i == 0)) { sb.AppendFormat("<span class=\"current\">{0}</span>", i); } else { sb.Append(GeneratePageLink(i.ToString(), i)); } } if (end < pageCount) { if (end < pageCount - 1) { sb.Append("..."); } if (pageCount - 2 > end) { sb.Append(GeneratePageLink((pageCount - 1).ToString(), pageCount - 1)); } sb.Append(GeneratePageLink(pageCount.ToString(), pageCount)); } // Next sb.Append(currentPage < pageCount ? GeneratePageLink("&gt;", (currentPage + 1)) : "<span class=\"disabled\">&gt;</span>"); return new HtmlString(sb.ToString()); } private string GeneratePageLink(string linkText, int pageNumber) { var routeDataValues = viewContext.RequestContext.RouteData.Values; RouteValueDictionary pageLinkValueDictionary; // Avoid canonical errors when page count is equal to 1. if (pageNumber == 1) { pageLinkValueDictionary = new RouteValueDictionary(this.linkWithoutPageValuesDictionary); if (routeDataValues.ContainsKey("page")) { routeDataValues.Remove("page"); } } else { pageLinkValueDictionary = new RouteValueDictionary(this.linkWithoutPageValuesDictionary) { { "page", pageNumber } }; } // To be sure we get the right route, ensure the controller and action are specified. if (!pageLinkValueDictionary.ContainsKey("controller") && routeDataValues.ContainsKey("controller")) { pageLinkValueDictionary.Add("controller", routeDataValues["controller"]); } if (!pageLinkValueDictionary.ContainsKey("action") && routeDataValues.ContainsKey("action")) { pageLinkValueDictionary.Add("action", routeDataValues["action"]); } // 'Render' virtual path. var virtualPathForArea = RouteTable.Routes.GetVirtualPathForArea(viewContext.RequestContext, pageLinkValueDictionary); if (virtualPathForArea == null) return null; var stringBuilder = new StringBuilder("<a"); if (ajaxOptions != null) foreach (var ajaxOption in ajaxOptions.ToUnobtrusiveHtmlAttributes()) stringBuilder.AppendFormat(" {0}=\"{1}\"", ajaxOption.Key, ajaxOption.Value); stringBuilder.AppendFormat(" href=\"{0}\">{1}</a>", virtualPathForArea.VirtualPath, linkText); return stringBuilder.ToString(); } } }
PagingExtensions.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Mvc.Ajax; using System.Web.Routing; namespace MvcPaging { public static class PagingExtensions { #region AjaxHelper extensions public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, AjaxOptions ajaxOptions) { return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, null, ajaxOptions); } public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string actionName, AjaxOptions ajaxOptions) { return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, actionName, null, ajaxOptions); } public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, object values, AjaxOptions ajaxOptions) { return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, new RouteValueDictionary(values), ajaxOptions); } public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string actionName, object values, AjaxOptions ajaxOptions) { return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, actionName, new RouteValueDictionary(values), ajaxOptions); } public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions) { return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, valuesDictionary, ajaxOptions); } public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string actionName, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions) { if (valuesDictionary == null) { valuesDictionary = new RouteValueDictionary(); } if (actionName != null) { if (valuesDictionary.ContainsKey("action")) { throw new ArgumentException("The valuesDictionary already contains an action.", "actionName"); } valuesDictionary.Add("action", actionName); } var pager = new Pager(ajaxHelper.ViewContext, pageSize, currentPage, totalItemCount, valuesDictionary, ajaxOptions); return pager.RenderHtml(); } #endregion #region HtmlHelper extensions public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount) { return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, null); } public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string actionName) { return Pager(htmlHelper, pageSize, currentPage, totalItemCount, actionName, null); } public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, object values) { return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, new RouteValueDictionary(values)); } public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string actionName, object values) { return Pager(htmlHelper, pageSize, currentPage, totalItemCount, actionName, new RouteValueDictionary(values)); } public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, RouteValueDictionary valuesDictionary) { return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, valuesDictionary); } public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string actionName, RouteValueDictionary valuesDictionary) { if (valuesDictionary == null) { valuesDictionary = new RouteValueDictionary(); } if (actionName != null) { if (valuesDictionary.ContainsKey("action")) { throw new ArgumentException("The valuesDictionary already contains an action.", "actionName"); } valuesDictionary.Add("action", actionName); } var pager = new Pager(htmlHelper.ViewContext, pageSize, currentPage, totalItemCount, valuesDictionary, null); return pager.RenderHtml(); } #endregion #region IQueryable<T> extensions public static IPagedList<T> ToPagedList<T>(this IQueryable<T> source, int pageIndex, int pageSize, int? totalCount = null) { return new PagedList<T>(source, pageIndex, pageSize, totalCount); } #endregion #region IEnumerable<T> extensions public static IPagedList<T> ToPagedList<T>(this IEnumerable<T> source, int pageIndex, int pageSize, int? totalCount = null) { return new PagedList<T>(source, pageIndex, pageSize, totalCount); } #endregion } }

轉(zhuǎn)載于:https://www.cnblogs.com/zengxiangzhan/archive/2012/03/30/2426109.html

總結(jié)

以上是生活随笔為你收集整理的MVC学习以及研究的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。