C# 如何在asp.net mvc中创建分页

C# 如何在asp.net mvc中创建分页,c#,asp.net-mvc,pagination,C#,Asp.net Mvc,Pagination,我想使用asp.net MVC对每页5篇文章进行分页, 我应该添加什么代码 这里是我的控制器: using CBA.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using CBA.ViewModels; using System.Data; namespace CBA.Controllers {

我想使用asp.net MVC对每页5篇文章进行分页, 我应该添加什么代码

这里是我的控制器:

    using CBA.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CBA.ViewModels;
using System.Data;

namespace CBA.Controllers
{
    public class EventController : Controller
    {
        private ModelEntities db = new ModelEntities();

       public ActionResult Index()
        //public ActionResult Index(int page = 1, int pageSize 5)
        {
            EventDetailsViewModel eventDetail = new EventDetailsViewModel();
            MasterEvents events = new MasterEvents();

            eventDetail.Title = events.Title;
            eventDetail.CreatedTime = events.CreatedTime;
            eventDetail.Detail = events.DetailEvent;
            eventDetail.CreatedBy = events.CreatedBy_Id;
            eventDetail.Description = events.ShortDescription;

            CBA.GetContent.GetContentSoapClient service = new CBA.GetContent.GetContentSoapClient();

            string[] Content = service.GetContentText("Events", DateTime.Now.ToString("MM-dd-yyyy"), clsEncrypt.EncodeTo64(DateTime.Now.ToString("MM-dd-yyyy")));
            if (Content[0] != null)
            {
                string id = Content[0];

                string ContentText;

                if (Content[1].Length == 0 && Content[2].Length == 0 && Content[3].Length == 0)
                {
                    ContentText = "";
                }
                else
                {
                    ContentText = "<div class=\"container\" #MARGIN-TOP# ><div class=\"row\"><div class=\"col-lg-10 col-lg-offset-1\">";
                    ContentText += "<div class=\"col-lg-12\" style=\"text-align:center;\"><h1>" + Content[1] + "</h1></div>";
                    ContentText += "<div class=\"col-lg-12\" style=\"text-align:center;\"><h2>" + Content[2] + "</h2></div>";
                    ContentText += "<div class=\"col-lg-12\"><div class=\"form-group\">" + HttpUtility.HtmlDecode(Content[3]).Replace("src=\"/", "src=\"" + System.Configuration.ConfigurationManager.AppSettings["replaceURLImageSlider"] + "/") + "</div>";
                    ContentText += "</div></div></div>";
                }

                DataTable dtSlider = service.GetContentImageSlider(int.Parse(id), DateTime.Now.ToString("MM-dd-yyyy"), clsEncrypt.EncodeTo64(DateTime.Now.ToString("MM-dd-yyyy")));

                if (dtSlider.Rows.Count > 0)
                {

                    string ContentSlider = "<div id=\"myCarousel\" class=\"carousel slide\"><ol class=\"carousel-indicators\">";

                    for (int i = 0; i < dtSlider.Rows.Count; i++)
                    {
                        if (i == 0)
                        {
                            ContentSlider += "<li data-target=\"#myCarousel\" data-slide-to=\"" + i.ToString() + "\" class=\"active\"></li>";
                        }
                        else
                        {
                            ContentSlider += "<li data-target=\"#myCarousel\" data-slide-to=\"" + i.ToString() + "\"></li>";
                        }
                    }

                    ContentSlider += "</ol><div class=\"carousel-inner\">";

                    for (int i = 0; i < dtSlider.Rows.Count; i++)
                    {
                        //dt.Columns.Add("ImageFile", typeof(string));
                        //dt.Columns.Add("HeaderText", typeof(string));
                        //dt.Columns.Add("ContentText", typeof(string));

                        string img = dtSlider.Rows[i]["ImageFile"].ToString().Replace("..", System.Configuration.ConfigurationManager.AppSettings["replaceURLImageSlider"]);

                        if (i == 0)
                        {
                            ContentSlider +=
                                "<div class=\"item active\" style=\"background:url('" + dtSlider.Rows[i]["ImageFile"].ToString().Replace("..", System.Configuration.ConfigurationManager.AppSettings["replaceURLImageSlider"]) + "') "
                                + "no-repeat center center; -webkit-background-size: cover; -moz-background-size: cover; "
                                + "-o-background-size: cover;background-size: cover;\">"
                                    + "<div class=\"container\">"
                                        + "<div class=\"carousel-caption\">"
                                            + "<div class=\"col-lg-6\" style='width:260px;'>"
                                                + "<h1>" + (string)dtSlider.Rows[i]["HeaderText"] + "</h1>"
                                                + "<p class=\"scroll_bni\" style='width: 260px;'>"
                                                    + (string)dtSlider.Rows[i]["ContentText"]
                                                + "</p>"
                                            + "</div>"
                                        + "</div>"
                                    + "</div>"
                                + "</div>";
                        }
                        else
                        {
                            ContentSlider +=
                                   "<div class=\"item\" style=\"background:url('" + dtSlider.Rows[i]["ImageFile"].ToString().Replace("..", System.Configuration.ConfigurationManager.AppSettings["replaceURLImageSlider"]) + "') "
                                   + "no-repeat center center; -webkit-background-size: cover; -moz-background-size: cover; "
                                   + "-o-background-size: cover;background-size: cover;\">"
                                       + "<div class=\"container\">"
                                           + "<div class=\"carousel-caption\">"
                                               + "<div class=\"col-lg-6\" style='width:260px;'>"
                                                   + "<h1>" + (string)dtSlider.Rows[i]["HeaderText"] + "</h1>"
                                                   + "<p class=\"scroll_bni\" style='width: 260px;'>"
                                                       + (string)dtSlider.Rows[i]["ContentText"]
                                                   + "</p>"
                                               + "</div>"
                                           + "</div>"
                                       + "</div>"
                                   + "</div>";
                        }
                    }

                    ContentSlider += "</div><a class=\"left carousel-control\" href=\"#myCarousel\" data-slide=\"prev\"><span class=\"glyphicon glyphicon-chevron-left\"></span></a><a class=\"right carousel-control\" href=\"#myCarousel\" data-slide=\"next\"><span class=\"glyphicon glyphicon-chevron-right\"></span></a></div>";

                    ViewBag.Carousel = ContentSlider;
                }
                else
                {
                    ContentText = ContentText.Replace("#MARGIN-TOP#", "style=\"margin-top:60px;\"");
                }

                ContentText = ContentText.Replace("#MARGIN-TOP#", "");

                ViewBag.Content = ContentText;
            }

            return View(db.MasterEvents.ToList());
        }


        public ActionResult ViewEvents(int id)
        {
            MasterEvents MasterEvents = db.MasterEvents.Find(id);
            ViewBag.data = id;
            return View();
        }
}
}

如何进行分页,我想用每页5篇文章进行分页。

在任何系统中,分页通常包括在controller方法中获取
页码和
每页计数,这样您就可以将这些值传递到业务层或数据访问层中的
搜索
方法,以仅获取您需要的内容需要

因此,本质上:

Index
controller方法修改为如下内容:
Index(int page=1,int countPerPage=5)

这将允许您在控制器中传递
页码
每页计数
,然后您可以使用它传递给搜索方法

您还需要创建一个显示页码的UI。计算需要显示多少页面的一种方法是返回搜索中出现的项目数(从搜索方法),然后除以
countPerPage

我希望这能把你推向正确的方向

以下是一些可供进一步阅读的资源:


这会给你一个更好的主意。

那么你是要求我们为你编写代码?堆栈溢出不是这样工作的。你试过什么?您是否考虑过需要传递给控制器什么来指示您的页面,或者如何从数据库中查询正确数量的项目?你有没有在网上其他地方查看分页是如何实现的?这是一个非常复杂的索引控制器方法。你在控制器中构建的所有HTML都需要移动到视图中。你可以做if然后在那里痛。
 @model IEnumerable<CBA.Models.MasterEvents>

@{
    ViewBag.Title = "Recruitment - DDR Events";
    ViewBag.lnkEvents = "active";
    Layout = "~/Views/Shared/ContentFrontEnd.cshtml";
}

<!-- Carousel
    ================================================== -->
@Html.Raw(ViewBag.Carousel)
<!-- /.carousel -->
<!-- Content
    ================================================== -->
@Html.Raw(ViewBag.Content)
<!-- /.Content -->


<!DOCTYPE html>

<html>
<head>
    <title>Index</title>
</head>
<body>
    <div class="container" style="background-color: white; border-radius: 0 0 15px 15px; margin-bottom: 40px;">
        <div class="row" style="margin-top: 30px;">
            <div class="col-lg-10 col-lg-offset-1">
                @foreach (var item in Model)
                {
                    <div class="blog-post">
                        <h2 class="blog-post-title">@Html.DisplayFor(modelItem => item.Title)</h2>
                        <p class="blog-post-meta">
                            Created Time @Html.DisplayFor(modelItem => item.CreatedTime)
                            <!--by <a href="#">@Html.DisplayFor(modelItem => item.CreatedBy_Id)</a></p>-->
                            <h2 class="blog-post-title">@Html.DisplayFor(modelItem => item.ShortDescription)</h2>
                            <div class="readmore">
                          <p>
@{
                            string parameterValue = "";
                            if (item.DetailEvent.ToString().Length < 100)
                            {
                               parameterValue = item.DetailEvent; 
                            }
                            else
                            {
                                parameterValue = item.DetailEvent.ToString().Substring(0, 200); 


                            }
                            }
 @Html.Raw(parameterValue);
                                </p>
                            </div>
                            <br />
 @Html.ActionLink("Read More..", "ViewEvents", "Event", new { id = 7 }, new { @class = "btn btn-primary btn-lg", style = "width:180px;" })

                        </p>
                         <p class="blog-post-meta">
                            Update Time @Html.DisplayFor(modelItem => item.UpdatedTime)
                        <p>
                        </div> 
                }
                <nav>
                    <ul class="pager">
                        <li><a href="#">Previous</a></li>
                        <li><a href="#">Next</a></li>
                    </ul>
                </nav>
            </div>
        </div>
    </div>
</body>
</html>
using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Web;

    namespace CBA.Models
    {
        public class MasterEvents
        {
            [Key]
            [DisplayName("ID")]
            [ScaffoldColumn(false)]
            public int Id { get; set; }

            [Required(ErrorMessage = "Required Events Title")]
            [DisplayName("Title")]
            [StringLength(250)]
            public string Title { get; set; }

            [Required(ErrorMessage = "Required Short Description")]
            [DisplayName("Short Description")]
            [StringLength(250)]
            public string ShortDescription { get; set; }

            [Required(ErrorMessage = "Required Details")]
            [DisplayName("Detail Events")]
            [StringLength(20)]
            public string DetailEvent { get; set; }

            [DisplayName("Created Time")]
            public System.DateTime? CreatedTime { get; set; }

            [DisplayName("Updated Time")]
            public System.DateTime? UpdatedTime { get; set; }

            [DisplayName("Created By")]
            public int? CreatedBy_Id { get; set; }

            [DisplayName("Updated By")]
            public int? UpdatedBy_Id { get; set; }


        }
    }