zoukankan      html  css  js  c++  java
  • 学用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做网站五:文章

  • 相关阅读:
    Redis之主从复制原理
    字符编码
    Android studio报错 "No IDEA annotations attached to the JDK 1.8, some issues will not be found" 解决方法
    json
    ajax
    《人月神话》读后感(三)
    Jquery基础
    EL表达式
    Android Studio更改虚拟机位置
    Mybatis之mybatis的介绍
  • 原文地址:https://www.cnblogs.com/mzwhj/p/2893095.html
Copyright © 2011-2022 走看看