网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Razor.TagHelpers;
using System;

namespace Dpz.Core.Web.Pager
{
    [HtmlTargetElement("pager")]
    public partial class MvcCorePagerTagHelper : TagHelper
    {
        private const string ActionAttributeName = "asp-action";
        private const string AreaAttributeName = "asp-area";
        private const string ControllerAttributeName = "asp-controller";
        private const string RouteAttributeName = "asp-route";
        private const string RouteValuesDictionaryName = "asp-all-route-data";
        private const string RouteValuesPrefix = "asp-route-";

        private int _totalPageCount = 1;
        private int _pageIndex;


        readonly IUrlHelperFactory _urlHelperFactory;
        public MvcCorePagerTagHelper(IUrlHelperFactory urlHelperFactory)
        {
            _urlHelperFactory = urlHelperFactory;
        }

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            //if(!int.TryParse((string)ViewContext.RouteData.Values[PageIndexParameterName],out _pageIndex)){
            //    _pageIndex = 1;
            //}

            if (Model == null)
                throw new ArgumentNullException(nameof(MvcCorePagerTagHelper.Model));
            int actualPageCount = (int)Math.Ceiling(Model.TotalItemCount / (double)Model.PageSize);
            _pageIndex = Model.CurrentPageIndex;
            if (MaximumPageNumber == 0 || MaximumPageNumber > actualPageCount)
                _totalPageCount = actualPageCount;
            else
                _totalPageCount = MaximumPageNumber;

            PagerBuilder pb;
            if (AjaxEnabled)
            {
                pb = new PagerBuilder(ViewContext, _urlHelperFactory.GetUrlHelper(ViewContext), _totalPageCount, _pageIndex, Options, AjaxOptions);
            }
            else
            {
                pb = new PagerBuilder(ViewContext, _urlHelperFactory.GetUrlHelper(ViewContext), _totalPageCount, _pageIndex, Options);
            }
            var content = pb.GenerateHtml();
            output.TagName = string.Empty;
            output.Content = new DefaultTagHelperContent().SetHtmlContent(content);
        }

    }
}
loading