所以我正在尝试创建一个脚本,根据页面的文档类型,如果在覆盖自定义标题输入中没有写入任何内容,则会出现某种预定义的标题标签格式。我已在主模板的title
标记中插入宏,但继续收到错误加载Razor Script消息。
HTML
<title>
<umbraco:Macro Alias="NewPageTitle" runat="server"></umbraco:Macro>
</title>
脚本 -
@inherits umbraco.MacroEngines.DynamicNodeContext
@using umbraco.MacroEngines
@{
if(String.IsNullOrEmpty(@Model.tabName.ToString()) == false )
{
@Model.tabName
}
else if(@Model.DescendantsOrSelf("Country"))
{
<text>
Holidays in @Model.Name
</text>
}
else
{
@Model.Name;
}
}
非常感谢任何帮助。
答案 0 :(得分:0)
尝试使用此代码。原始代码的问题在于您使用&#34; @ Model.DescendantsOrSelf(&#34; Country&#34;)&#34; 作为布尔值,它是一个列表。我还删除了 if(String.IsNullOrEmpty(@ Model.tabName.ToString()))的比较。
此外,如果将?umbDebugShowTrace = true 添加到URL的末尾,您可以获得一些有价值的调试信息。有一个名为&#34; Umbraco Debug&#34;的Chrome扩展程序。我用来快速访问查询字符串和信息。您可能会发现它很有用。
@inherits umbraco.MacroEngines.DynamicNodeContext
@using umbraco.MacroEngines
@{
if(String.IsNullOrEmpty(@Model.tabName.ToString()))
{
@Model.tabName
}
else if(@Model.DescendantsOrSelf("Country").Count() > 0)
{
<text>
Holidays in @Model.Name
</text>
}
else
{
@Model.Name;
}
}
答案 1 :(得分:0)
非常简单,只需将以下代码添加到标题标记
即可@Umbraco.Field("pageName")
将显示pageName,您也可以从文档类型添加自定义属性。 例如你添加了像“metaKeywords”这样的新属性,其值为“html,javascript,xml”,按以下方式获取值...
@Umbraco.Field("metaKeywords")
即使您不需要在模型中添加自定义属性