zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }

    效果:

  • 相关阅读:
    小笔记
    过滤器实现Token验证(登录验证+过期验证)---简单的实现
    在MVC过滤器中获取触发的Controller、Action、参数 等
    C#强制类型转换
    iTextSharp生成pdf
    多选文件批量上传前端(ajax*formdata)+后台(Request.Files[i])---input+ajax原生上传
    out string
    松软科技web教程:JavaScript HTML DOM 事件监听器
    JavaScript HTML DOM 事件
    松软科技Web课堂:JavaScript HTML DOM 动画
  • 原文地址:https://www.cnblogs.com/mmmhhhlll/p/5185536.html
Copyright © 2011-2022 走看看