學用MVC4做網站五:5.6文章瀏覽(前台)


今天做文章的前台文章列表。

前台顯示比較簡單只顯示文章標題和發布日期。

首先添加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瀏覽器中看下效果。

image

代碼見:學用MVC4做網站五:文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM