我有一個包含「註釋」部分視圖的「票據」視圖。票可以有很多評論。我想在Ticket視圖中創建評論的部分視圖,以便可以在不影響票證視圖的情況下將分頁功能添加到評論。 (我會有2個具有相同的功能屬於不同的數據,但與票證相關的其他部分)我試圖使用可通過Nuget的PagedList庫。部分視圖MVC - 與視圖不同的部分視圖功能
理論上,我將票模型傳遞給GetComments控制器,我在其中搜索票證評論,比較ticketId。我將註釋的ToPagedList返回到局部視圖。我希望分頁在分部視圖和GetComments控制器內工作。 (我想離開「開箱即用」功能的'詳細'控制器的門票。例如返回查看(db.tickets.find(id))
我從來沒有實現過部分之前,這是我第4周的學習MVC所以任何幫助表示讚賞
父視圖:TicketDetails.cshtml
@model DearSanta.Models.Ticket
//ticket display markup removed to simplify
// Where I wan my partial view of comments
<div class="col-md-4">
@Html.Partial("GetComments", Model)
</div>
管窺:GetComments.cshtml
@model IPagedList<DearSanta.Models.TicketComment>
@using PagedList;
@section CSS{
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css">
}
<div id="comments">
<h4 class="title">Ticket Comments</h4>
<ul class="timeline">
@foreach (var c in Model)
{
<li>
<i class="fa fa-comment"></i>
<span class="date">@c.CreateDate.ToString("d MMM")</span>
<div class="content">
<p><strong>@c.User.DisplayName</strong> @c.Comment</p>
<small>@Convert.ToInt32(((DateTime.Now - c.CreateDate).TotalDays)) days ago</small>
</div>
</li>
}
</ul>
<div>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("GetComments","Tickets", new { page }))
</div>
</div>
局部視圖控制器:
//Controller references: using PagedList;
using PagedList.Mvc;
public PartialViewResult GetComments(Ticket model, int page = 1)
{
int pageSize = 3;
var comments = db.TicketComment.Where(c => c.TicketId == model.TicketId).ToPagedList(page, pageSize);
return PartialView("GetComments", comments);
}
該解決方案解決了使用自己的控制器部分視圖的部分渲染,謝謝。 – JReam