一、摘要:
在实际应用中,会有给页面元素添加头元素的需要。比如要在页面文档中添加SEO数据如description、keywords等,或者在文档头部添加CSS样式、javascript 脚本等。而这些不在ASP.NET MVC 3 Razor Engine的默认特性中。本文给出了增加此特性的最佳决方案。
二、遇到的问题:
在使用 ASP.NET MVC 3 Razor Engine 来开发网站时,有时需要对每个页面单独设置相应的SEO数据如description、keywords等,或者页面有其独特的样式或者脚本等,这些内容需要添加至HTML文档的<head></head>之间(当然,CSS样式与javascript可以放在<body></body>之间,但是,description、keywords等metadata无法放入)。而这时发现,默认的Razor View无法做到这点。
三、解决方案:
1. 找到布局文件,即~\Views\Shared\_Layout.cshtml,在<head></head>之间添加一行代码,如下:
<head> ...<title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> ... @RenderSection("metas", false) ...
</head>
2. 在需要单独设置这些头元素数据的页面文件内,以下面的方式添加相应的数据即可。
... @section metas { <meta name="description" content="your description here" /> <meta name="keywords" content="keyword1, keyword2, keyword3" /> <style type="text/css"> body {font-size: small;} </style> <script type="text/javascript" src="http://www.zizhujy.com/jTester.js"></script> ... } ...
[donate:www.zizhujy.com]