學用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


免責聲明!

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



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