一般来说一个网站最主要的部分就是文章,实现了文章功能网站的核心也就出来了。今天开始做文章功能,首先文章应包含以下字段。
字段 | 名称 | 类型 | 必填 | 默认值 | 说明 |
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{ ////// 文章模型 /// public class Article { [Key] public int ArticleId { get; set; } ////// 公共模型id /// [Display(Name="公共模型编号")] [Required(ErrorMessage="×")] public int CommonModelId { get; set; } ////// 来源 /// [Display(Name="来源")] [StringLength(255, ErrorMessage = "×")] public string Source { get; set; } ////// 作者 /// [Display(Name = "作者")] [StringLength(50, ErrorMessage = "×")] public string Author { get; set; } ////// 摘要 /// [NotMapped] [Display(Name="摘要")] public string Intro { get; set; } ////// 内容 /// [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{ /// ///添加文章 /// /// 文章 ///public override bool Add(Article article) { dbContext.Articles.Add(article); return dbContext.SaveChanges() > 0; } /// /// 更新文章 /// /// 文章 ///public override bool Update(Article article) { dbContext.Articles.Attach(article); dbContext.Entry (article).State = System.Data.EntityState.Modified; dbContext.Entry (article.CommonModel).State = System.Data.EntityState.Modified; return dbContext.SaveChanges() > 0; } /// /// 删除文章 /// /// 文章id ///public override bool Delete(int Id) { dbContext.Articles.Remove(dbContext.Articles.SingleOrDefault(a => a.ArticleId == Id)); return dbContext.SaveChanges() > 0; } /// /// 查找文章 /// /// 文章id ///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。作为用户登录后文章管理的默认页
////// 用户默认页 /// [UserAuthorize] public ActionResult UserDefault() { return View(); }
右键添加视图
@{ ViewBag.Title = "文章管理"; Layout = "~/Views/Shared/_User.cshtml";}@Html.Partial("PartialUserNavMenus")
F5看下效果
=============================================================
代码随后上传
2013-1-20代码:
2013-1-28日5.5“全部文章”代码:
2013-2-5日5.7“显示文章”代码