Kentico 页面模板-对象引用未设置为对象的实例

Kentico 页面模板-对象引用未设置为对象的实例,kentico,Kentico,我有一个页面模板,其中包含以下代码行: <div id="<%= CurrentDocument.NodeAlias %>" class="lvl3"> 一切正常-id值显示正确。但是,在使用页面模板模块设计选项卡时出现错误。在事件日志中,我看到错误消息“对象引用未设置为对象的实例”。取出id代码段,错误就消失了。我不知道这个错误意味着什么以及如何修复它。你能帮忙吗 我确实需要一些特定于页面的唯一标识符(本例中为NodeAlias)用于其他目的。不支持在页面模板布局

我有一个页面模板,其中包含以下代码行:

<div id="<%= CurrentDocument.NodeAlias %>" class="lvl3">

一切正常-id值显示正确。但是,在使用页面模板模块设计选项卡时出现错误。在事件日志中,我看到错误消息“对象引用未设置为对象的实例”。取出id代码段,错误就消失了。我不知道这个错误意味着什么以及如何修复它。你能帮忙吗


我确实需要一些特定于页面的唯一标识符(本例中为NodeAlias)用于其他目的。

不支持在页面模板布局上使用代码块。我假设您使用的是ASCX布局。此外,您的代码看起来更像一个宏-那么,您可能正在使用HTML?如果是,则语法应为
{%CurrentDocument.NodeAlias%}

如果您使用的是ASCX布局,您可能也会面临这个问题:
请注意,在portal engine中,生命周期是经过位修改的,因此我们无法确保代码块每次都能工作—有时可能会工作。它主要取决于其他web部件/控件以及页面模板中的放置顺序。我宁愿推荐使用本文中的变通方法。 或者,您可以尝试一下,但不能保证,这在某些情况下可能有效,您需要指定完整的命名空间:

<%= CMS.MacroEngine.MacroResolver.Resolve("{%CurrentDocument.NodeAlias#%}") %>

不支持在页面模板布局上使用代码块。我假设您使用的是ASCX布局。此外,您的代码看起来更像一个宏-那么,您可能正在使用HTML?如果是,则语法应为
{%CurrentDocument.NodeAlias%}

如果您使用的是ASCX布局,您可能也会面临这个问题:
请注意,在portal engine中,生命周期是经过位修改的,因此我们无法确保代码块每次都能工作—有时可能会工作。它主要取决于其他web部件/控件以及页面模板中的放置顺序。我宁愿推荐使用本文中的变通方法。 或者,您可以尝试一下,但不能保证,这在某些情况下可能有效,您需要指定完整的命名空间:

<%= CMS.MacroEngine.MacroResolver.Resolve("{%CurrentDocument.NodeAlias#%}") %>

答案很简单-如果您在Kentico页面模板应用程序中打开页面模板-您当前的文档始终为空(因为您正在编辑模板本身,而没有特定的文档)

您可以在Pages应用程序中使用Design选项卡执行完全相同的操作。还可以从此处编辑所有模板属性,包括布局:


答案很简单-如果您在Kentico页面模板应用程序中打开页面模板,则当前文档始终为空(因为您正在编辑模板本身,而没有特定文档)

您可以在Pages应用程序中使用Design选项卡执行完全相同的操作。还可以从此处编辑所有模板属性,包括布局:


谢谢你,德米特里。我知道这一点。只是希望模板在页面和页面模板应用程序中都没有错误。谢谢Dmitry。我知道这一点。只是希望模板在页面和页面模板应用程序中都没有错误。