首页 > 解决方案 > 如何在 View 启动时检测 Content 的状态?

问题描述

假设我已经为 Link 内容类型创建了自己的自定义视图。当用户将 2sxc 内容应用程序添加到窗格中,然后选择内容类型(链接)然后我的自定义视图,当它第一次启动时,我如何检测到 a)视图不使用演示项目与 b)视图使用演示项目并显示演示项目与 c) 这不是第一次,并且有一个真实的用户添加内容(实体)到位?

我为 a) 案例做了这样的事情:

var link = AsDynamic(Data["Default"]).First();

然后检查它是否为空,但看起来我的视图代码从未执行,而是我只看到“所选模板不存在演示项目”。

如果我确实分配了一个演示,是否有更优雅的方式来知道我作为 Content.First() 或 Data["Default"]).First() 传递的实体是一个演示项,现在是用户创建的实体?目前我正在对模板中的 EntityId 进行硬编码并对其进行测试。

标签: dotnetnuke2sxc

解决方案


如果没有演示项目,模板系统不会呈现模板(除非它是没有内容类型的模板)。当我们需要这个时,我们有两种方法

  1. 在其中一个字段中为演示项目提供唯一值并在模板中检查该值
  2. 检查 GUID 上的演示项目 ID 并检查(Content.EntityGuid == ...)

推荐阅读