【问题标题】:In N2CMS, can you disable the prompt to 'Update links leading to' the item you just edited?在 N2CMS 中,您可以禁用“更新链接到”您刚刚编辑的项目的提示吗?
【发布时间】:2013-01-28 08:26:43
【问题描述】:

我正在使用 N2CMS 来管理我的网站内容,而不使用来自 N2 的页面路由。因此,当我编辑一段内容时,当 N2 询问我:“更新指向...的链接”“在以前的 URL 上添加永久重定向?”时,它是毫无用处的。我可以禁用此行为吗?

【问题讨论】:

    标签: n2cms n2


    【解决方案1】:

    将页面转换为部分本质上是个坏主意。它可能会暂时解决您遇到的问题,但它会以不好的方式反弹给您。

    相反,您可以这样做

    • 在 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)
          {
          }
      }
      

    【讨论】:

    • 在我的项目中,我没有使用任何 N2 路由或模板。我编写了自己的包装类来从 N2 对象模型中获取内容并将其放置在现有页面中。除了用于编辑它们的界面之外,我是否使用 [PageDefinition] 或 [PartDefinition] 似乎没有区别(实际上 [PartDefinition] 是更适合相关内容的界面)。你能告诉我在这条路上我将来可能会遇到什么问题吗?
    • 嗯,这取决于您的替换范围。如果您将 N2 的大部分功能替换为您自己的,那么您可能不会有任何问题。
    【解决方案2】:

    据我从源代码中可以看出,如果 ContentItem 是一个页面(即 [PageDefinition] 属性或 .IsPage = true),N2 总是希望向您显示“更新链接到...”页面,并且地址已更新。在我们的案例中,解决方案是使用 [PartDefinition] 将有问题的“页面”变成“部分”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2011-12-25
      相关资源
      最近更新 更多