Wie kann ich meine Paging-Funktionalität für die Verwendung von AJAX Insead konvertieren?
Ich arbeite derzeit mit Paginierung in meinem MVC 3-Projekt mithilfe der PagedList-Bibliothek (https://github.com/TroyGoode/PagedList).
Ich möchte diesen Code konvertieren, um die Seite mit Ajax mit den neuen Ergebnissen zu aktualisieren, anstatt die gesamte Seite zu aktualisieren. Ich bin mir nicht sicher, wie ich das anstellen soll. Ich bin ziemlich neu in MVC und komme aus Webforms. Jede Hilfe wäre sehr dankbar!
Hier ist mein Code:
Heim-Controller:
<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>
Modell
<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>