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

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>
    
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵