m0_59142629 2021-06-10 00:10 采纳率: 50%
浏览 27

MVC ToPagedList 怎么实现2个有主外键的表的分页?

这个是把ef自动生成的代码加了分页的功能,但是这个只能分页一个表,我的2个表是有主外键关系的。没加分页前能显示,加了这个就显示不了了

private UserDBContext db = new UserDBContext();

        // GET: BookInfo
        public ActionResult Index(int? page)
        {
            var bookList = from s in db.BookInfo select s;
            //第几页  
            int pageNumber = page ?? 1;

            //每页显示多少条  
            int pageSize = 5;

            //根据ID升序排序  
            bookList = bookList.OrderBy(x => x.BookId);

            //通过ToPagedList扩展方法进行分页  
            IPagedList<BookInfo> bookPagedList = bookList.ToPagedList(pageNumber, pageSize);

            //将分页处理后的列表传给View 
            return View(bookPagedList);
        }

第一个类型是另一个表的名字,我要第一个类型显示出来怎么办?有没有大佬解决一下,感谢了!

  • 写回答

1条回答 默认 最新

  • 不良使 新星创作者: python技术领域 2024-04-18 09:19
    关注
    using System.Linq;
    using System.Web.Mvc;
    using PagedList; // 导入PagedList命名空间
    
    public class BookController : Controller
    {
        private UserDBContext db = new UserDBContext();
    
        // GET: BookInfo
        public ActionResult Index(int? page)
        {
            // 每页显示多少条
            int pageSize = 5;
            // 当前页数
            int pageNumber = (page ?? 1);
    
            // 查询 BookInfo 并且包括关联的 Author 信息
            var bookList = db.BookInfo.Include("Author").OrderBy(x => x.BookId);
    
            // 将查询结果分页
            IPagedList<BookInfo> bookPagedList = bookList.ToPagedList(pageNumber, pageSize);
    
            // 将分页处理后的列表传给View 
            return View(bookPagedList);
        }
    }
    
    @model IPagedList<BookInfo>
    
    <table class="table">
        <tr>
            <th>Book ID</th>
            <th>Title</th>
            <th>Author</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.BookId</td>
                <td>@item.Title</td>
                <td>@item.Author.AuthorName</td> <!-- 显示关联的作者信息 -->
            </tr>
        }
    </table>
    
    <div class="pagination-container">
        @Html.PagedListPager(Model, page => Url.Action("Index", new { page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "table-container" }))
    </div>
    
    
    
    
    评论

报告相同问题?