【发布时间】:2013-01-28 08:26:43
【问题描述】:
我正在使用 N2CMS 来管理我的网站内容,而不使用来自 N2 的页面路由。因此,当我编辑一段内容时,当 N2 询问我:“更新指向...的链接”“在以前的 URL 上添加永久重定向?”时,它是毫无用处的。我可以禁用此行为吗?
【问题讨论】:
我正在使用 N2CMS 来管理我的网站内容,而不使用来自 N2 的页面路由。因此,当我编辑一段内容时,当 N2 询问我:“更新指向...的链接”“在以前的 URL 上添加永久重定向?”时,它是毫无用处的。我可以禁用此行为吗?
【问题讨论】:
将页面转换为部分本质上是个坏主意。它可能会暂时解决您遇到的问题,但它会以不好的方式反弹给您。
相反,您可以这样做
在 web.config 中关闭 LinkTracker
linkTracker enabled="false" permanentRedirectEnabled="false"
将 CommandFactory.cs 从 N2 Source 复制到您的解决方案中,并将其重命名为 MyCommandFactory.cs。 添加服务替换属性
[Service(typeof(ICommandFactory), Replaces = typeof(CommandFactory))]
在构造函数中,改变这一行
updateReferences = new MyUpdateReferencesCommand();
编写自己的空更新引用命令类
public class MyUpdateReferencesCommand : UpdateReferencesCommand
{
public override void Process(CommandContext state)
{
}
}
【讨论】:
据我从源代码中可以看出,如果 ContentItem 是一个页面(即 [PageDefinition] 属性或 .IsPage = true),N2 总是希望向您显示“更新链接到...”页面,并且地址已更新。在我们的案例中,解决方案是使用 [PartDefinition] 将有问题的“页面”变成“部分”。
【讨论】: