日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 玖玖爱免费视频 | 五月婷婷激情五月 | 久久国产视频精品 | 乱色专区| 国产超碰在线 | 96精品视频 | 熟女av一区二区三区 | 色女人网站 | 久久三| 日韩午夜在线观看 | 无码人妻熟妇av又粗又大 | 美女色黄网站 | 日本aⅴ在线| 中文字幕第22页 | 高清精品xnxxcom | 亚洲男性天堂 | 国模少妇一区二区 | 国产女主播视频 | 老王66福利网 | 三上悠亚在线观看一区二区 | 特级西西人体 | www精品国产 | 欧美日韩性生活视频 | 亚洲第一色网站 | 亚洲黄色激情视频 | 四虎精品成人免费网站 | 日韩污视频在线观看 | 黄色高清网站 | 日韩性视频 | 9久久9毛片又大又硬又粗 | 337p日本欧洲亚洲大胆张筱雨 | 色婷婷aⅴ| 91av影院 | 三年中文免费观看大全动漫 | 69色综合 | 欧美日韩在线观看一区二区三区 | 久久人人爽 | h片网站在线观看 | 福利视频在线导航 | 九草视频在线观看 | 韩国美女一区二区 | 亚洲国产精品久久人人爱 | 国产一级片 | 亚洲色图狠狠干 | 欧美aa在线观看 | 口述3p做爰全过程 | 美女av免费观看 | 日本黄色短片 | 光棍影院手机版在线观看免费 | 天堂va蜜桃| 黄色免费在线播放 | 人妖和人妖互交性xxxx视频 | 国产一区资源 | 成年网站在线 | 123成人网 | 操小妹影院 | 国产1区在线 | 极品少妇视频 | 成人在线精品视频 | 久久亚洲精品国产精品黑人v | 亚洲国产网 | 国产麻豆午夜三级精品 | 91精品国产一区二区 | 青青青免费在线视频 | 亚洲天天操 | 日韩深夜在线 | 中文字幕人成乱码熟女香港 | 97香蕉久久夜色精品国产 | 99无码熟妇丰满人妻啪啪 | 一区二区av在线 | 婷婷6月天 | 久久午夜电影 | 美女屁股眼视频网站 | cekc老妇女cea0 | 亚洲一区二区自拍偷拍 | 成人福利在线 | 日韩精品资源 | www.youjizz.com日本 | 国产午夜成人久久无码一区二区 | 一级黄色片a| 中文字幕二区三区 | 91在线观看免费高清完整版在线观看 | 手机在线一区二区三区 | 国产精品自产拍高潮在线观看 | 热久久精 | 国产精品资源站 | 日韩欧美网 | 日韩免费福利 | 中文字幕.com | 色婷婷av一区二区 | 欧美香蕉 | 操一操视频 | 日日爱影视 | 久久久福利视频 | 国产精品主播在线 | 国产午夜福利视频在线观看 | 国产乱偷 | 欧美性猛交xxx乱大交3蜜桃 | 中文字幕制服丝袜 |