0

私は MVC 3、Razor、および Entity Framework を使用しています。MVC3を使ってブログを作っているので、ブログにはたくさんの投稿があります。私が今表示しているホームページでは、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のようなものを試すことができます

Readme をチェックしてください。あなたがやろうとしていることの良い例があります。Nugetでも利用できます

ページングが機能するようになったら、ページャーを SO のようにスタイルできます。

于 2012-07-26T05:48:01.763 に答える