Pagedlist Нумерация страниц без параметров MVC - PullRequest
0 голосов
/ 01 апреля 2019

Я использую Pagedlist для разбиения на страницы в своем проекте MVC.Разбиение на страницы работает в большинстве случаев без ViewModels.

Но когда я использую ViewModel PagedList, генерирующий ссылки разбивки на страницы, но без какого-либо значения параметра для страницы строки запроса.

Вот мой ViewModel

public class SearchResult
{
    public int ItemID { get; set; }
    public string ItemTitle { get; set; }
    public int? AuthorID { get; set; }
    public string AuthorName { get; set; }  
    public int? IssueDate { get; set; }
}

и метод ActionResult

public ActionResult Date(int? page)
{
    try
    {
        string query;
        if (Request.RequestContext.RouteData.Values["query"] != null)
        {
            using (dreposEntities db = new dreposEntities())
            {
                query = Request.RequestContext.RouteData.Values["query"].ToString();
                int issueYear = int.Parse(query);
                ViewBag.Query = issueYear;

                var dateFilter = db.itemstreams.Where(q => q.issuedate == issueYear).ToList();
                List<SearchResult> resultList = new List<SearchResult>();
                if (dateFilter.Any())
                {
                    foreach (var c in dateFilter)
                    {
                        SearchResult obj = new SearchResult
                        {
                            ItemID = c.id,
                            ItemTitle = c.title,
                            IssueDate = c.issuedate,
                        };
                        resultList.Add(obj);
                    }
                }
                ViewBag.SearchQuery = query;

                return View(resultList.OrderBy(d=>d.IssueDate).ToPagedList(page ?? 1, 10));
            }
        }
        else
        {
            using (dreposEntities db = new dreposEntities())
            {
                List<SearchResult> resultList = new List<SearchResult>();
                var files = db.itemstreams.Where(s=>s.status==1).ToList();
                if (files.Any())
                {
                    foreach (var f in files)
                    {
                        SearchResult obj = new SearchResult
                        {
                            ItemID = f.id,
                            ItemTitle = f.title,
                            IssueDate = f.issuedate,
                        };
                        resultList.Add(obj);
                    }
                }
                return View(resultList.OrderBy(d=>d.IssueDate).ToPagedList(page ?? 1, 10));
            }
        }
    }
    catch (Exception e)
    {
        return View();
    }
}

То, что показывает код выше в представлении, прилагается в электронном письме ниже enter image description here

А в ракурсе / Бритва

<div class="pull-right">
                    @Html.PagedListPager(Model, page => Url.Action("Date", new { page }), new PagedListRenderOptions() { Display = PagedListDisplayMode.IfNeeded })
                </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...