0

我正在使用 MVC 3、Razor 和实体框架。我正在使用 MVC 3 制作博客,所以博客上有很多帖子。在我现在显示的主页上说 10 个帖子。

我正在使用以下代码来显示帖子。

 <h1 class="postTitle">@Html.ActionLink(post.PostTitle, "SinglePost", "Post", new { postID = post.PostID}, null)</h1>

 <div class="postDateTime"><b>Posted on :</b> @post.PostDateTime</div>
 <br/>
 @if(post.PostContent.Length > 500)
 {
     <span>@post.PostContent.Substring(0, 500) [Read More...]</span>
 }
 else
 {
     <span>@post.PostContent</span>
 }

 <hr class="postSeparator"/>
 </div>

我有点困惑如何为此实现分页,或者更好地在 SO 实现类似的东西。请指导我这个家伙。

在此处输入图像描述

4

2 回答 2

2

关键点是在查询模型时使用 Skip() 和 Take() LINQ 方法:

例如

int page;
int pageSize;
var postsToDisplay =db.Posts.Where(x => x.Tag == "EF")
                            .Skip((page -1) * pageSize)
                            .Take(pageSize);

您应该将它放在 ViewModel 中,然后使用对您的 ViewModel 进行强类型化的 View。

于 2012-07-26T05:49:03.900 回答
0

您可以尝试类似PagedList

查看自述文件,它有一个很好的例子来说明你正在尝试做什么。它也可以在Nuget上使用

一旦您开始分页工作,您就可以设置分页器的样式,使其看起来像 SO。

于 2012-07-26T05:48:01.763 回答