Jak przekonwertować moją funkcjonalność stronicowania, aby używać AJAX Insead?
Obecnie pracuję nad paginacją w moim projekcie MVC 3, korzystając z biblioteki PagedList (https://github.com/TroyGoode/PagedList).
Chciałbym przekonwertować ten kod, aby zaktualizować stronę za pomocą ajax z nowymi wynikami, a nie odświeżać całą stronę. Nie jestem pewien, jak się do tego zabrać. Jestem raczej nowy w MVC pochodzący z Webforms. Każda pomoc byłaby bardzo mile widziana!
Oto mój kod:
Kontroler domowy:
<code>//##################################### // ActionResult = Retrieve Comments //##################################### [ChildActionOnly] public ActionResult _Comments(int ProductID, int? Page) { //Perform the Database Query. try { //SQL Query - Get * records var Model = from r in DB.Comments where r.ProductID == ProductID select r; //Page number passed in via url. Default to 1 if not specified. var PageNumber = Page ?? 1; //Grab 6 results from the result set. var Results = Model.ToPagedList(PageNumber, 6); //Store Paged Result set in ViewBag for Paging. ViewBag.Results = Results; //Store in ViewBag for display (Page 1 of 43) ViewBag.PageNumber = PageNumber; //Get Total Pages: Divide Total Records by 6 Records per page. ViewBag.PageCount = Model.Count() / 6 + 1; //Return Records to my view. return PartialView(Results); } //There was an error. catch { //ViewBag.ErrorMessage = ex; return PartialView("Error"); } } </code>
PartialView: _Comments
<code>@model IEnumerable<DH.Models.Comment> @using PagedList.Mvc; @using PagedList; @{ //No Comments Yet if (@Model.Count() == 0) { <div id="CommentStatus">Be the first to comment on this product!</div> } //There are comments! else { foreach (var item in Model) { //html for writing out the comments... } } } <div>Page @ViewBag.PageNumber of @ViewBag.PageCount</div> @Html.PagedListPager((IPagedList)ViewBag.Results, Page => Url.Action("Index", new { Page = Page }), new PagedListRenderOptions { LinkToPreviousPageFormat = "< Prev", LinkToNextPageFormat = "Next >", LinkToLastPageFormat = "Última >>" }) </code>
Model
<code>namespace DH.Models { public class Comment { public int CommentID { get; set; } public int ProductID { get; set; } public string Author { get; set; } public string Message { get; set; } public DateTime MessageDate { get; set; } public int ThumbsUp { get; set; } public int ThumbsDown { get; set; } public string IP { get; set; } } } </code>