Umbraco: Razor语法中的项标签

本文关键字:标签 语法 Razor Umbraco | 更新日期: 2023-09-27 18:16:43

使用主模板,我们的想法是能够从Umbraco中提取元标签和描述。最初主模板页面是使用WebForms的,但是整个项目已经转换为Razor页面。所以meta标签和描述是从Umbraco中提取的,使用如下:

<umbraco:Item field="MetaKeywords" insertTextBefore="&lt;meta name=&quot;keywords&quot; content=&quot;" insertTextAfter="&quot; /&gt;" runat="server"></umbraco:Item>
<umbraco:Item field="MetaDescription" insertTextBefore="&lt;meta name=&quot;Description&quot; content=&quot;" insertTextAfter="&quot; /&gt;" runat="server"></umbraco:Item>

然而,在做了一些阅读(并纠正我,如果我错了)后,umbraco项目标签不能与razor语法一起使用。我不是专家,我很了解乌姆布拉科等人。是否有一种方法可以使用剃刀页面执行相同的功能?使用上面的代码,Visual studio会说umbraco标签是一个无法识别的命名空间。

这是一个MVC项目,如果它提供任何进一步的复杂性/信息。

Umbraco: Razor语法中的项标签

旧的帖子,但我想我会添加解决方案,我发现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标签。