Как извлечь пейджинг

У меня небольшая проблема была на нем целую вечность

В настоящее время у меня работает serach и пейджинг, но я не знаю, каковы аспекты кода в пейджинге.

Мне нужен только пейджинг и не требуется поиск, так как он у меня уже есть. Это руководство, которое я использовал как для подкачки страниц, так и для поиска, но не знаю, что извлечь только для подкачки:

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

Это мой контроллер для пейджинга и поиска:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using PagedList;
using Games.Models;


namespace Games.Controllers
{
    public class ShowAllGamesController : Controller
    {
        //
        // GET: /ShowAllGames/

        public ActionResult Index(string Ordering, string WordFilter, string DisplaySearchResults, int? CounterForPage)
        {
            using (var db = new gamezoneDBEntities())
            {

                ViewBag.Message = TempData["message"];
                ViewBag.CurrentSort = Ordering;
                ViewBag.NameSortParm = String.IsNullOrEmpty(Ordering) ? "GameName" : "";
                ViewBag.DateSortParm = Ordering == "ReleaseYearOfGame" ? "DiscriptionOfGame" : "Date";


                {
                    TempData["DisplaySearchResult"] = DisplaySearchResults;

                    {
                        ViewBag.search = DisplaySearchResults;
                    }
                    if (Request.HttpMethod == "GET")
                    {
                        DisplaySearchResults = WordFilter;
                    }
                    else if (DisplaySearchResults == "")
                    {
                        ViewData["MyMessage"] = "Nothing Has Been Entered.";

                    }

                    else
                    {
                        CounterForPage = 1;
                    }

                    ViewBag.CurrentFilter = DisplaySearchResults;

                    var FullDatabaseItem = from b in db.tblGames
                                           select b;
                    if (!String.IsNullOrEmpty(DisplaySearchResults))
                    {
                        FullDatabaseItem = FullDatabaseItem.Where(b => b.GameName.ToUpper().Contains(DisplaySearchResults.ToUpper()));

                    }
                    switch (Ordering)
                    {
                        case "HeadlineName":
                            FullDatabaseItem = FullDatabaseItem.OrderBy(b => b.GameName);
                            break;
                        case "DatePosted":
                            FullDatabaseItem = FullDatabaseItem.OrderBy(b => b.ReleaseYear);
                            break;
                        case "DiscriptionDate":
                            FullDatabaseItem = FullDatabaseItem.OrderBy(b => b.ReleaseYear);
                            break;
                        default:
                            FullDatabaseItem = FullDatabaseItem.OrderByDescending(b => b.ReleaseYear);
                            break;
                    }

                    int pageSize = 3;
                    int pageNumber = (CounterForPage ?? 1);
                    var PageNumberResults = FullDatabaseItem.ToPagedList(pageNumber, pageSize);
                    ViewBag.PageNumberResults = FullDatabaseItem.Count();
                    if (PageNumberResults.Any())
                    {

                        return View(PageNumberResults);
                    }

                    return View("ErrorView");
                }
            }
        }


        public ActionResult AutoCompleteGames()
        {
            var db = new gamezoneDBEntities();
            string term = this.Request.Params["term"].ToString();
            return Json(db.tblGames.Where(games => games.GameName.StartsWith(term)).Select(games => games.GameName), JsonRequestBehavior.AllowGet);

        }

        //
        // GET: /ShowAllGames/Details/5


        public ViewResult Details(int id)
        {
            using (var db = new gamezoneDBEntities())
            {
                tblGame tblgame = db.tblGames.Find(id);
                return View(tblgame);
            }
        }

        //
        // GET: /ShowAllGames/Create

        public ActionResult Create()
        {
            return View();
        } 

        //
        // POST: /ShowAllGames/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /ShowAllGames/Edit/5

        public ActionResult Edit(int id)
        {
            return View();
        }

        //
        // POST: /ShowAllGames/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add update logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /ShowAllGames/Delete/5

        public ActionResult Delete(int id)
        {
            return View();
        }

        //
        // POST: /ShowAllGames/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}

как вы видите, оба работают хорошо и правильно. Но я не знаю, что мне нужно для подкачки, может ли кто-нибудь помочь мне, пожалуйста, спасибо.

Что я попробовал:

int pageSize = 3;
                    int pageNumber = (CounterForPage ?? 1);
                    var PageNumberResults = FullDatabaseItem.ToPagedList(pageNumber, pageSize);
                    ViewBag.PageNumberResults = FullDatabaseItem.Count();
                    if (PageNumberResults.Any())
                    {

                        return View(PageNumberResults);
                    }

не работает

Спасибо

РЕДАКТИРОВАТЬ:

Это где я хочу только пейджинг

   public ViewResult Index()
            {
                var Info = db.tblGames.Include(x => x.tblConsole).Where(UserInfo => UserInfo.UserName.Equals(User.Identity.Name)).ToList();
                return View(Info);
            }

this is my ViewPersonalGames controller

Ниже моя страница, которая больше не работает, если вы вернете ее обратно IEnumerable

EDIT:


@*<div class="PageCounter">
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)
    of @Model.PageCount
    &nbsp;
    @if (Model.HasPreviousPage)
    {

        @Html.ActionLink("<<", "Index", new { CounterForPage = 1, Ordering = ViewBag.CurrentSort, WordFilter = ViewBag.WordFilter })
        @Html.Raw("&nbsp;");
        @Html.ActionLink("< Previous Page", "Index", new { CounterForPage = Model.PageNumber - 1, Ordering = ViewBag.CurrentSort, WordFilter = ViewBag.WordFilter })
    }
    else
    {
        @:<<
        @Html.Raw("&nbsp;");
        @:< Prev
    }
    &nbsp;
    @if (Model.HasNextPage)
    {
        @Html.ActionLink("Next Page >", "Index", new { CounterForPage = Model.PageNumber + 1, Ordering = ViewBag.CurrentSort, WordFilter = ViewBag.CurrentFilter })
        @Html.Raw("&nbsp;");
        @Html.ActionLink(">>", "Index", new { CounterForPage = Model.PageCount, Ordering = ViewBag.CurrentSort, WordFilter = ViewBag.CurrentFilter })
    }
    else
    {
        @:Next>
        @Html.Raw("&nbsp;")
        @:>>
    }

*@

1 ответ

public ViewResult Index()
{
    var pageSize = 3;
    var pageNumber = (CounterForPage ?? 1);
    var Info = db.tblGames
        .Include(x => x.tblConsole)
        .Where(UserInfo => UserInfo.UserName.Equals(User.Identity.Name))
        .OrderBy(UserInfo => UserInfo.UserName)
        .Skip(pageSize * (pageNumber - 1)) // skip first 0, 3, 6, 9, 12, etc, rows
        .Take(pageSize) // give me only this many rows from the db
        .ToList();
    return View(Info);
}
Другие вопросы по тегам