這篇文章主要為大家展示了“MVC4制作網(wǎng)站之如何實(shí)現(xiàn)部分欄目功能”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“MVC4制作網(wǎng)站之如何實(shí)現(xiàn)部分欄目功能”這篇文章吧。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、重慶小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了中方免費(fèi)建站歡迎大家使用!
欄目模型;
模型應(yīng)有一下字段:欄目名稱,父欄目id,欄目類型,內(nèi)容模型,欄目視圖,內(nèi)容視圖,鏈接地址,欄目排序。暫時(shí)先想到這么多,先這這么寫著。
欄目名稱和父欄目id不用說(shuō)很簡(jiǎn)單。
欄目類型有三種:普通欄目-就是一般的欄目;單頁(yè)欄目——是指欄目就是一個(gè)頁(yè)面,像公司介紹,聯(lián)系地址等;外部鏈接—是指欄目點(diǎn)一下就跳轉(zhuǎn)到一個(gè)鏈接。
內(nèi)容模型——是指欄目為普通欄目時(shí),欄目的內(nèi)容,像新聞,文章,留言等。
欄目視圖——是欄目使用的視圖名稱,在欄目類型為鏈接時(shí)無(wú)效。
內(nèi)容視圖——是指欄目的具體內(nèi)容的視圖,像欄目模型為新聞時(shí),打開(kāi)欄目下的新聞時(shí)使用的視圖,僅在欄目類型為普通欄目時(shí)有效。
鏈接地址—點(diǎn)擊跳轉(zhuǎn)到的地址,在欄目類型為鏈接時(shí)有效。
欄目排序—欄目排序的依據(jù),同級(jí)欄目數(shù)字越小排序越靠前。
字段確定后在Models文件夾點(diǎn)右鍵添加Category類
using System.ComponentModel.DataAnnotations; namespace Ninesky.Models { ////// 欄目模型 /// public class Category { [Key] public int CategoryId { get; set; } ////// 欄目名稱 /// [Display(Name="欄目名稱",Description="2-20個(gè)字符")] [Required(ErrorMessage="×")] [StringLength(20,MinimumLength=2,ErrorMessage="×")] public string Name { get; set; } ////// 父欄目編號(hào) /// [Display(Name="父欄目")] [Required(ErrorMessage="×")] public int ParentId { get; set; } ////// 欄目類型【0-普通欄目;1-單頁(yè)欄目;2-外部鏈接】 /// [Display(Name="欄目類型")] [Required(ErrorMessage = "×")] public int Type { get; set; } ////// 內(nèi)容模型【僅在欄目為普通欄目時(shí)有效】 /// [Display(Name="內(nèi)容模型")] public string Model { get; set; } ////// 欄目視圖 /// [Display(Name = "欄目視圖", Description = "欄目頁(yè)的視圖,最多255個(gè)字符。。")] [StringLength(255, ErrorMessage = "×")] public string CategoryView { get; set; } ////// 內(nèi)容頁(yè)視圖 /// [Display(Name = "內(nèi)容視圖", Description = "內(nèi)容頁(yè)視圖,最多255個(gè)字符。。")] [StringLength(255, ErrorMessage = "×")] public string ContentView { get; set; } ////// 鏈接地址 /// [Display(Name="鏈接地址",Description="點(diǎn)擊欄目時(shí)跳轉(zhuǎn)到的鏈接地址,最多255個(gè)字符。")] [StringLength(255,ErrorMessage = "×")] public string Navigation { get; set; } ////// 欄目排序 /// [Display(Name="欄目排序",Description="數(shù)字越小順序越靠前。")] public int Order { get; set; } } }
在Category類下面添加欄目類型枚舉
public enum CategoryType { 一般欄目, 單頁(yè)欄目, 外部鏈接 }
打開(kāi)NineskyContext.cs 在上面添加public DbSet
using Ninesky.Models; using System.Data.Entity; namespace Ninesky.Repository { public class NineskyContext:DbContext { public DbSetUsers { get; set; } public DbSet UserGroups { get; set; } public DbSet Categorys { get; set; } public NineskyContext() : base() { Database.CreateIfNotExists(); } } }
在Repository文件夾添加CategoryRepository類,該類繼承自RepositoryBase
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Ninesky.Models; namespace Ninesky.Repository { public class CategoryRepository:RepositoryBase{ /// /// 添加欄目 /// /// 欄目 ///public override bool Add(Category category) { dbContext.Categorys.Add(category); if (dbContext.SaveChanges() > 0) return true; else return false; } /// /// 更新欄目 /// /// 欄目 ///public override bool Update(Category category) { dbContext.Categorys.Attach(category); dbContext.Entry (category).State = System.Data.EntityState.Modified; if (dbContext.SaveChanges() > 0) return true; else return false; } /// /// 刪除欄目 /// /// 欄目 ///public bool Delete(Category category) { dbContext.Categorys.Remove(category); if (dbContext.SaveChanges() > 0) return true; else return false; } /// /// 刪除欄目 /// /// 欄目Id ///public override bool Delete(int CategoryId) { var _category = dbContext.Categorys.SingleOrDefault(c => c.CategoryId == CategoryId); if (_category == null) return false; else return Delete(_category); } /// /// 查找制定欄目 /// /// 欄目id ///public override Category Find(int CategoryId) { return dbContext.Categorys.SingleOrDefault(c => c.CategoryId == CategoryId); } /// /// 獲取跟欄目 /// ///public IQueryable Root() { return Children(0); } /// /// 獲取子欄目 /// /// 欄目Id ///public IQueryable Children(int CategoryId) { return dbContext.Categorys.Where(c => c.ParentId == CategoryId).OrderBy(c => c.Order); } /// /// 欄目列表 /// /// 模型名稱 ///public IQueryable List(string model) { return dbContext.Categorys.Where(c => c.Model == model).OrderBy(c => c.Order); } } }
以上是“MVC4制作網(wǎng)站之如何實(shí)現(xiàn)部分欄目功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!