zoukankan      html  css  js  c++  java
  • 学用MVC4做网站五:文章

    一般来说一个网站最主要的部分就是文章,实现了文章功能网站的核心也就出来了。今天开始做文章功能,首先文章应包含以下字段。

    字段

    名称

    类型

    必填

    默认值

    说明

    ArtickeId

    文章id

    Int[key]

       

    CommonModelId

    公共模型Id

    Int

       

    Source

    来源

    string(255)

         

    Author

    作者

    string(50)

         

    Intro

    摘要

    string(255)

         

    Content

    内容

    string

       

    CommonModel

    公共模型数据

    CommonModel

    virtual

       

    在Models文件夹点右键添加Article模型

    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    
    namespace Ninesky.Models
    {
          /// <summary>
        /// 文章模型
        /// </summary>
        public class Article
        {
            [Key]
            public int ArticleId { get; set; }
            /// <summary>
            /// 公共模型id
            /// </summary>
            [Display(Name="公共模型编号")]
            [Required(ErrorMessage="×")]
            public int CommonModelId { get; set; }
            /// <summary>
            /// 来源
            /// </summary>
            [Display(Name="来源")]
            [StringLength(255, ErrorMessage = "×")]
            public string Source { get; set; }
            /// <summary>
            /// 作者
            /// </summary>
            [Display(Name = "作者")]
            [StringLength(50, ErrorMessage = "×")]
            public string Author { get; set; }
            /// <summary>
            /// 摘要
            /// </summary>
            [NotMapped]
            [Display(Name="摘要")]
            public string Intro { get; set; }
            /// <summary>
            /// 内容
            /// </summary>
            [Display(Name="内容")]
            [Required(ErrorMessage = "×")]
            [DataType(DataType.Html)]
            public string Content { get; set; }
    
    
            public virtual CommonModel CommonModel { get; set; }
        }
    }

    在Repository文件夹右键添加ArticleRepository类,继承自RepositoryBase<Article>。重写Add、update、delete、find函数。

    using Ninesky.Models;
    using System.Linq;
    
    namespace Ninesky.Repository
    {
        public class ArticleRepository:RepositoryBase<Article>
        {
            /// <summary>
            ///添加文章
            /// </summary>
            /// <param name="article">文章</param>
            /// <returns></returns>
            public override bool Add(Article article)
            {
                dbContext.Articles.Add(article);
                return dbContext.SaveChanges() > 0;
            }
            /// <summary>
            /// 更新文章
            /// </summary>
            /// <param name="article">文章</param>
            /// <returns></returns>
            public override bool Update(Article article)
            {
                dbContext.Articles.Attach(article);
                dbContext.Entry<Article>(article).State = System.Data.EntityState.Modified;
                dbContext.Entry<CommonModel>(article.CommonModel).State = System.Data.EntityState.Modified;
                return dbContext.SaveChanges() > 0;
            }
            /// <summary>
            /// 删除文章
            /// </summary>
            /// <param name="Id">文章id</param>
            /// <returns></returns>
            public override bool Delete(int Id)
            {
                dbContext.Articles.Remove(dbContext.Articles.SingleOrDefault(a => a.ArticleId == Id));
                return dbContext.SaveChanges() > 0;
            }
            /// <summary>
            /// 查找文章
            /// </summary>
            /// <param name="Id">文章id</param>
            /// <returns></returns>
            public override Article Find(int Id)
            {
                return dbContext.Articles.AsNoTracking().Include("CommonModel").SingleOrDefault(a => a.ArticleId == Id);
            }
        }
    }

    在Controllers文件夹上右键添加ArticleController

    using Ninesky.Models;
    using Ninesky.Repository;
    using System.Web.Mvc;
    
    namespace Ninesky.Controllers
    {
        public class ArticleController : Controller
        {
            ArticleRepository articleRsy;
            CommonModelRepository cModelRsy;
            public ArticleController()
            {
                articleRsy = new ArticleRepository();
            }    
        }
    }

    在控制器中添加[UserDefault]action。作为用户登录后文章管理的默认页

    /// <summary>
            /// 用户默认页
            /// </summary>
            [UserAuthorize]
            public ActionResult UserDefault()
            {
                return View();
            }

    右键添加视图

    @{
        ViewBag.Title = "文章管理";
        Layout = "~/Views/Shared/_User.cshtml";
    }
    
    <div class="workspace">
        <div class="inside">
            <div class="notebar">
                <img alt="" src="~/Content/Default/User/Images/Icon/Article_16.png" />您现在的位置: 文章管理
            </div>
        </div>
    </div>
    <div class="left">@Html.Partial("PartialUserNavMenus")</div>
    <div class="clear"></div>

    F5看下效果

    image

    =============================================================

    代码随后上传

    2013-1-20代码:http://pan.baidu.com/share/link?shareid=204196&uk=2198133459

    2013-1-28日5.5“全部文章”代码:http://pan.baidu.com/share/link?shareid=226838&uk=2198133459

    2013-2-5日5.7“显示文章”代码http://pan.baidu.com/share/link?shareid=255289&uk=2198133459

  • 相关阅读:
    java中断
    guava cache使用和源码分析
    redis基本类型和使用
    LRU Cache java实现
    HTTP长连接、短连接使用及测试
    mac下redis安装、设置、启动停止
    一次SocketException:Connection reset 异常排查
    【swift 结构体】
    【swift array 数组】
    【iOS知识汇】NSNotification
  • 原文地址:https://www.cnblogs.com/mzwhj/p/2868885.html
Copyright © 2011-2022 走看看