Using a PagedList with a ViewModel ASP.Net MVC

后端 未结 5 2018
暖寄归人
暖寄归人 2020-11-29 01:09

I\'m trying to using a PagedList in my ASP.Net application and I found this example on the Microsoft website http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-m

5条回答
  •  爱一瞬间的悲伤
    2020-11-29 02:01

    I modified the code as follow:

    ViewModel

    using System.Collections.Generic;
    using ContosoUniversity.Models;
    
    namespace ContosoUniversity.ViewModels
    {
        public class InstructorIndexData
        {
         public PagedList.IPagedList Instructors { get; set; }
         public PagedList.IPagedList Courses { get; set; }
         public PagedList.IPagedList Enrollments { get; set; }
        }
    }
    

    Controller

    public ActionResult Index(int? id, int? courseID,int? InstructorPage,int? CoursePage,int? EnrollmentPage)
    {
     int instructPageNumber = (InstructorPage?? 1);
     int CoursePageNumber = (CoursePage?? 1);
     int EnrollmentPageNumber = (EnrollmentPage?? 1);
     var viewModel = new InstructorIndexData();
     viewModel.Instructors = db.Instructors
        .Include(i => i.OfficeAssignment)
        .Include(i => i.Courses.Select(c => c.Department))
        .OrderBy(i => i.LastName).ToPagedList(instructPageNumber,5);
    
     if (id != null)
     {
        ViewBag.InstructorID = id.Value;
        viewModel.Courses = viewModel.Instructors.Where(
            i => i.ID == id.Value).Single().Courses.ToPagedList(CoursePageNumber,5);
     }
    
     if (courseID != null)
     {
        ViewBag.CourseID = courseID.Value;
        viewModel.Enrollments = viewModel.Courses.Where(
            x => x.CourseID == courseID).Single().Enrollments.ToPagedList(EnrollmentPageNumber,5);
     }
    
     return View(viewModel);
    }
    

    View

    Page @(Model.Instructors.PageCount < Model.Instructors.PageNumber ? 0 : Model.Instructors.PageNumber) of @Model.Instructors.PageCount @Html.PagedListPager(Model.Instructors, page => Url.Action("Index", new {InstructorPage=page}))

    I hope this would help you!!

提交回复
热议问题