Umbraco: Razor语法中的项标签
本文关键字:标签 语法 Razor Umbraco | 更新日期: 2023-09-27 18:16:43
使用主模板,我们的想法是能够从Umbraco中提取元标签和描述。最初主模板页面是使用WebForms的,但是整个项目已经转换为Razor页面。所以meta标签和描述是从Umbraco中提取的,使用如下:
<umbraco:Item field="MetaKeywords" insertTextBefore="<meta name="keywords" content="" insertTextAfter="" />" runat="server"></umbraco:Item>
<umbraco:Item field="MetaDescription" insertTextBefore="<meta name="Description" content="" insertTextAfter="" />" runat="server"></umbraco:Item>
然而,在做了一些阅读(并纠正我,如果我错了)后,umbraco项目标签不能与razor语法一起使用。我不是专家,我很了解乌姆布拉科等人。是否有一种方法可以使用剃刀页面执行相同的功能?使用上面的代码,Visual studio会说umbraco标签是一个无法识别的命名空间。
这是一个MVC项目,如果它提供任何进一步的复杂性/信息。
旧的帖子,但我想我会添加解决方案,我发现MVC
https://our.umbraco.org/forum/using/ui-questions/22198-Meta-Tags这个旧的解决方案不适合你的原因是,它是在WebForms模式下运行的网站。因为你使用的是Umbraco 7.2.2,它默认使用MVC,
在MVC模板中,你可以这样调用它。
@Umbraco.Field("AliasOfTheField")
https://our.umbraco.org/Documentation/Reference/Mvc/views RenderingafieldwithUmbracoHelper
那么对于元描述和元关键字,它应该是这样的。
@Umbraco.Field("metaDescription")
@Umbraco.Field("metaKeywords")
我现在已经设法让这个工作。对于将来遇到这个问题的任何人,这就是我如何让它工作的。我检查当前页面是否具有我正在查找的属性,然后根据该属性分配关键字和描述。
@if (CurrentPage.HasProperty("SeoKeywords") && CurrentPage.HasProperty("SeoDescription"))
{
<meta name="keywords" content="@CurrentPage.SeoKeywords" />
<meta name="description" content="@CurrentPage.SeoDescription" />
}
在我正在使用的基本页面文档类型Umbraco上,关键字和描述都有一个属性,每个属性都有一个别名。这个别名就是我在CurrentPage.HasProperty(")中检查的。
这现在对我有效。希望这可能有助于提供一点帮助给其他人。也感谢"Exception"澄清了原来的问题。
simple razor engine
不支持Umbraco标签(到目前为止,如您的问题所示) 基于的web应用程序,你必须在asp.net mvc中使用htmlhelpers或HTML标签。
for example:-
@Html.TextBoxFor(),@Html.TextArea()
…或者只是简单的HTML标签。