我试图从widget(/ views / parts / folder)添加一些meta标签,这些meta标签从orchard外部的数据库中获取数据。我需要将它们放在头部,坦率地说我不知道如何实现这一目标。
我试过了:
using (Script.Head())
{
<meta property="description" content="ABC">
}
SetMeta("ABC", "description");
但这些都不起作用: - (
编辑:我们的document.cshtml代码:
@using Orchard.Mvc.Html;
@using Orchard.UI.Resources;
@{
RegisterLink(new LinkEntry { Type = "image/x-icon", Rel = "shortcut icon", Href = Url.Content("~/modules/orchard.themes/Content/orchard.ico") });
string title = Convert.ToString(Model.Title);
string siteName = Convert.ToString(WorkContext.CurrentSite.SiteName);
string classForPage = "static " + Html.ClassForPage();
}
<!DOCTYPE html>
<!--[if lt IE 7]>
<html lang="@WorkContext.CurrentCulture" class="@classForPage no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>
<html lang="@WorkContext.CurrentCulture" class="@classForPage no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>
<html lang="@WorkContext.CurrentCulture" class="@classForPage no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html lang="@WorkContext.CurrentCulture" class="@classForPage no-js"> <!--<![endif]-->
<head>
<meta charset="utf-8" />
<title>@Html.Title(title, siteName)</title>
<meta name="viewport" content="width=device-width">
@{
Display(Model.Head);
}
<meta property="og:title" content="@Layout.Title - @Convert.ToString(WorkContext.CurrentSite.SiteName)">
<meta property="og:site_name" content="@Convert.ToString(WorkContext.CurrentSite.SiteName)">
<meta property="og:url" content="@Request.Url">
<meta property="og:type" content="article">
<script>(function(d){d.className="dyn"+d.className.substring(6,d.className.length);})(document.documentElement);</script>
</head>
<body>
@Display(Model.Body)
@Display(Model.Tail)
</body>
</html>
&#13;
有人知道如何实现这个目标吗?
答案 0 :(得分:1)
IResourceManager提供了必要的方法。 在视图中使用它:
var resourceManager = WorkContext.Resolve<Orchard.UI.Resources.IResourceManager>();
resourceManager.SetMeta(new Orchard.UI.Resources.MetaEntry
{
Name = "description",
Content = "ABC"
});
但它也可以在其他地方使用(例如部分驱动程序)。
修改强> 使用SetMeta(&#34;说明&#34;,&#34; ABC&#34;)在视图中给出相同的结果。
答案 1 :(得分:1)
我在标题标记之前的layout.cshtml文件中使用了以下代码并且它有效。
@using (Script.Head())
{
<meta name="description" content="<your description>"/>
<meta name="keywords" content="<your keywords here>"/>
}
享受!!!