我正在使用剃刀视图引擎处理MVC3 Web应用程序。我正在寻找一种在我的网页上自动生成元关键字和描述的解决方案。
我已经在stackoverflow上找到了this解决方案,这个想法很好看。但由于我打算在我的网站上发布博客等...我希望根据页面内容自动生成元关键字和描述。
到目前为止,我已经考虑到了以下几点。假设当前的HTML如下所示;
<html>
<head>
</head>
<body>
<header></header>
<div id="container">
<div id="sideBar"></div>
<div id="pageHeader"></div>
<div id="content">
<!--This part contains the dynamic content-->
</div>
<div class="clear"></div>
</div>
<footer></footer>
</body>
</html>
我想要的情况如下所示;
<html>
<head>
@Html.MetaKeywords()
@Html.MetaDescription()
</head>
<body>
<header></header>
<div id="container">
<div id="sideBar"></div>
<div id="pageHeader"></div>
<div id="content">
<!--This part contains the dynamic content-->
</div>
<div class="clear"></div>
</div>
<footer></footer>
</body>
</html>
说这一切我还有以下问题没有得到答复,希望有人可以提供帮助。
我希望有人可以帮助我。谢谢!
答案 0 :(得分:2)
如果我理解正确,您希望能够根据内容div中的文本自动生成元数据吗?
我会尝试将text / html / model传递给MetaKeywords和MetaDescription函数,并允许它们解析/分析/查找您需要放入元数据中的信息。
<html>
<head>
@Html.MetaKeywords(Model.ContentText)
@Html.MetaDescription(Model.ContentText)
</head>
<body>
<header></header>
<div id="container">
<div id="sideBar"></div>
<div id="pageHeader"></div>
<div id="content">
<!--This part contains the dynamic content-->
</div>
<div class="clear"></div>
</div>
<footer></footer>
</body>
</html>
答案 1 :(得分:1)
您应该了解生成页面内容是动作处理的最后阶段,它直接执行HttpContextBase.Response,并且通常服务器可能永远不会缓存整个内容,它可能会因生成而发送到客户端。
您可以按照此处http://weblogs.asp.net/gunnarpeipman/archive/2010/08/15/asp-net-mvc-3-global-action-filters.aspx所述全局注册过滤器,这样您就不需要为每个操作方法添加属性。
答案 2 :(得分:0)
在_layout.cshtml上你可以添加@Rendersection(“header”,false)在标题部分!!暂时是假的。 稍后您必须将其更改为true或删除所需的属性。
在每个页面上,您现在可以使用
@section header{
<meta name="Author" content="1SeoAdvies.nl" />;
Here you add every desired meta tag.
}
请注意,_layout页面的标题部分没有元标记。