【问题标题】:asp.net mvc 5 pagination in my guestbook view我的留言簿视图中的asp.net mvc 5分页
【发布时间】:2016-01-02 22:39:32
【问题描述】:

我刚刚学习 MVC 5,我想在页面上发布 10 个 cmets 后创建一个分页。到目前为止,代码非常简单。

这是我的控制器:

    public ActionResult Index()
    {
        var Inlägg = db.Gästbok.OrderByDescending(Gästbok => Gästbok.Datum).Take(10).ToList();

        return View(Inlägg);
    }

这是视图:

        @foreach (var item in Model)
        {
            <p>@Html.DisplayFor(modelItem => item.Kommentar)</p>
            <br />

            <p>Postad: @Html.DisplayFor(modelItem => item.Datum) Av: @Html.DisplayFor(modelItem => item.Namn) (@Html.DisplayFor(modelItem => item.Email))</p>

            <hr />
        }

        <button class="btn btn-default">
            @Html.ActionLink("Skriv nytt inlägg", "Create")
        </button>

所以,如果有人能给我一个简单的例子或解释我如何在这里实现分页,我真的很感激!提前致谢!! :D

【问题讨论】:

    标签: c# asp.net-mvc pagination


    【解决方案1】:

    我可以推荐安装PagedList.MVC:

    Install-Package PagedList 
    

    然后实现这样的东西:

    控制器:

    public ActionResult Index(int page = 1, int pageSize = 10)
    {
        var inlägg = db.Gästbok.OrderByDescending(g => g.Datum).ToList();
        var model = new PagedList<Gästbok>(inlägg, page, pageSize);
    
        return View(model);
    }
    

    查看:

    @model PagedList<Gästbok>
    
    @foreach (var item in Model)
    {
        <p>@Html.DisplayFor(modelItem => item.Kommentar)</p>
        <br />
    
        <p>
            Postad: @Html.DisplayFor(modelItem => item.Datum) 
            Av: @Html.DisplayFor(modelItem => item.Namn
            (@Html.DisplayFor(modelItem => item.Email))
        </p>
    
        <hr />
    }
    
    <p>
        @Html.PagedListPager(Model, page => Url.Action("Index",
            new { page, pageSize = Model.PageSize }))
    
        Showing @Model.FirstItemOnPage to @Model.LastItemOnPage
            of @Model.TotalItemCount comments.
    </p>
    <hr />
    
    <button class="btn btn-default">
        @Html.ActionLink("Skriv nytt inlägg", "Create")
    </button>
    

    并将PagedList dll 添加到Views/Web.config&lt;configuration&gt;&lt;system.web.webPages.razor&gt; 部分的&lt;namespaces&gt; 元素中,如下所示:

    <configuration>
      (...)
      <system.web.webPages.razor>
        (...)
        <namespaces>
          (...)
          <add namespace="PagedList" />
          <add namespace="PagedList.Mvc" />
        </namespaces>
      </system.web.webPages.razor>
    </configuration>
    

    它看起来像这样:

    【讨论】:

    • 抱歉,回复太晚了...我在查看页面顶部的@model 中遇到错误。找不到类型或命名空间
    • 没问题。您必须将命名空间添加到 Razor 的 namespaces 元素中的 Views/Web.Config。请参阅我对答案的更新。
    • 哦,是的!我在想我必须在 Web.config 文件中做一些事情。谢谢!!它现在工作得很好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-04
    • 2015-09-12
    • 2012-06-22
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多