過去幾年都是用asp.net webform進行開發東西,最近聽說過時了,同時webform會產生ViewState(雖然我已經不用ruanat=server的控件好久了 :)),對企業應用無所謂,但對於互聯網應用就不太友好了,這幾天學習了一下asp.net mvc,自己做了個網站玩玩(asp.net mvc + bootstrap + html5),隨便也學習一下。
網站的組織:
三個網站分別為 index主站、Info信息咨詢站、live視頻站,利用Areas進行分開
namespace DaiWan.lol.Areas.info.Filter { public class MetaInfo : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.Controller.ViewBag.meta = Meta(); } private string Meta(string copyright,string keywords, string description, string author) { StringBuilder s = new StringBuilder(); string MetaTemplate =@"<meta name = ""Copyright"" content=""#copyright#"" /> <meta name=""keywords"" content=""#keywords#"" /> <meta name=""description"" content=""#description#"" /> <meta name=""author"" content=""#author#"" />"; return MetaTemplate.Replace("#copyright#", copyright) .Replace("#keywords#", keywords) .Replace("#description#", description) .Replace("#author#", author); } private string Meta() { string copyright = "帶玩,DaiWan"; string keywords = "英雄聯盟,lol,DaiWan,Game,游戲,lol攻略,lol視頻,英雄資料,英雄,攻略"; string description = "DaiWan LOL英雄聯盟,為英雄聯盟玩家提供最全的英雄聯盟出裝攻略、英雄聯盟視頻、客戶端下載、戰斗力查詢、英雄皮膚、最全的英雄資料和物品等信息,掌握第一手資料,不遺漏任何一條英雄聯盟的信息,更多精彩"; string author = "帶玩游戲平台"; return Meta(copyright, keywords, description, author); } } }
使用
namespace DaiWan.lol.Areas.info.Controllers { public class HomeController : BaseController { // GET: info/Home [MetaInfo] public ActionResult Index() { ArticleLib lib = new ArticleLib(); IList<Article> list = lib.List(); Mapper.CreateMap<Article, ArticleViewMode>(); IList<ArticleViewMode> ilist = Mapper.Map<IList<ArticleViewMode>>(list); return View(ilist); } // GET: info/Home public ActionResult Detail(string guid) { ArticleLib lib = new ArticleLib(); Article article = lib.Get(guid); Mapper.CreateMap<Article, ArticleViewMode>(); ArticleViewMode articleviewmode = Mapper.Map<ArticleViewMode>(article); return View(articleviewmode); } } }
效果: