今天做文章的前台文章列表。
前台顯示比較簡單只顯示文章標題和發布日期。
首先添加CommonModelController
using Ninesky.Models; using Ninesky.Repository; using System.Web.Mvc; namespace Ninesky.Controllers { public class CommonModelController : Controller { private CommonModelRepository cModelRsy; public CommonModelController() { cModelRsy = new CommonModelRepository(); } } }
在CommonModelController中聲明了CommonModelRepository類cModelRsy。
添加一個分部視圖PartialList用來顯示內容列表,與“我的文章”相似依然用到CommonModelRepository.List函數
/// <summary> /// 內容列表 /// </summary> /// <param name="id">欄目Id</param> /// <param name="cChildren">是否包含子欄目</param> /// <param name="page">頁碼</param> /// <param name="pageSize">每頁顯示的數目【0表示依欄目設置,如欄目不存在設為20】</param> /// <param name="order">排序【0依欄目設置或默認】</param> /// <param name="view">視圖</param> public PartialViewResult PartialList(int id, bool cChildren = false, int page = 1, int pageSize = 0, int order = 0, string view = "PartialList") { if (!cChildren && ((pageSize == 0) || (order == 0))) { CategoryRepository _categoryRsy = new CategoryRepository(); var _category = _categoryRsy.Find(id); if (_category != null) { if (pageSize == 0) pageSize = (int)_category.PageSize; if (order == 0) order = _category.Order; } else if (pageSize == 0) pageSize = 20; } var _cModelPd = cModelRsy.List(id, cChildren, null, null, page, pageSize, order); return PartialView(view,_cModelPd); }
代碼很簡單,參數的含義也都比較清楚。
在PartialList上右鍵添加視圖,視圖內部用foreach循環生成文章標題列表。
@model PagerData<Ninesky.Models.CommonModel> <div class="cModel_List"> <ul> @foreach (var item in Model) { <li>@Html.ActionLink(item.Title, "Index", "CommonModel", new { id = item.CommonModelId }, null) <time>@item.ReleaseDate.ToString("yyyy-MM-dd")</time></li> } </ul> </div> @Html.Pager(this.ViewContext.RouteData.Values, Model.Config, "pager", "pager")
好,見證奇跡的時刻到了!打開Views/category/index.cshtml在<div class="content_cnt">。。。</div>里面后部添加@Html.Action("PartialList", "CommonModel", new { id = Model.CategoryId })
整個視圖如下:
@model Ninesky.Models.Category @{ ViewBag.Title = "欄目默認頁"; Layout = "~/Views/Shared/_Layout.cshtml"; } <div class="banner"> <img src="~/Content/Default/Images/banner.jpg" /> </div> <div class="left"> <div class="children"> <dl> <dt>@Model.Name</dt> <dd>@Html.Action("PartialChildren", "Category", new { id = Model.CategoryId })</dd> </dl> </div> </div> <div class="content_cnt"> <div class="path">@Html.Action("PartialPath", "Category", new { id = Model.CategoryId })</div> @Html.Action("PartialList", "CommonModel", new { id = Model.CategoryId }) </div>
F5瀏覽器中看下效果。
代碼見:學用MVC4做網站五:文章