asp.net mvc 利用過濾器進行網站Meta設置


過去幾年都是用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);
        }
    }
}

 

效果:


免責聲明!

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



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