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

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

报告相同问题?

悬赏问题

  • ¥50 为什么我版本升级之后运行速度变慢5倍??
  • ¥15 如何在gazebo中加载机械臂和机械手
  • ¥15 纯运放实现隔离采样方案设计
  • ¥20 easyconnect无法连接后缀带.com的网站,一直显示找不到服务器ip地址,但是带有数字的网站又是可以连接上的,如何解决
  • ¥15 电脑开机过商标后就直接这样,求解各位
  • ¥15 mysql , 用自己创建的本地主机和用户名 登录不上
  • ¥15 关于#web项目#的问题,请各位专家解答!
  • ¥15 vmtools环境不正常
  • ¥15 请问如何在Ubuntu系统中安装使用microsoft R open?
  • ¥15 jupyter notebook