dotnetnuke - 如何在 View 启动时检测 Content 的状态?
问题描述
假设我已经为 Link 内容类型创建了自己的自定义视图。当用户将 2sxc 内容应用程序添加到窗格中,然后选择内容类型(链接)然后我的自定义视图,当它第一次启动时,我如何检测到 a)视图不使用演示项目与 b)视图使用演示项目并显示演示项目与 c) 这不是第一次,并且有一个真实的用户添加内容(实体)到位?
我为 a) 案例做了这样的事情:
var link = AsDynamic(Data["Default"]).First();
然后检查它是否为空,但看起来我的视图代码从未执行,而是我只看到“所选模板不存在演示项目”。
如果我确实分配了一个演示,是否有更优雅的方式来知道我作为 Content.First() 或 Data["Default"]).First() 传递的实体是一个演示项,现在是用户创建的实体?目前我正在对模板中的 EntityId 进行硬编码并对其进行测试。
解决方案
如果没有演示项目,模板系统不会呈现模板(除非它是没有内容类型的模板)。当我们需要这个时,我们有两种方法
- 在其中一个字段中为演示项目提供唯一值并在模板中检查该值
- 检查 GUID 上的演示项目 ID 并检查
(Content.EntityGuid == ...)
推荐阅读
- javascript - 如何根据文本高度动态增加文本框高度并从总屏幕 30% 开始
- c - 添加阵列 SIMD 与展开
- linkedin-api - 我们可以像使用 LinkedIn API 的 Office 365 Outlook 一样进行 LinkedIn 个人资料搜索吗
- javascript - 是否可以使用 Javascript fetch API 读取 .csv 文件?
- android - Android Studio 按钮颜色不变 - Kotlin
- amazon-web-services - 在 AWS 中等待并收到 SSM.SendCommand 完成通知的最佳方法是什么
- c++ - 为什么我不能用 lock_guard 锁定两个互斥锁
- nestjs - 如何使用 NestJS 获取 FullURL?
- blogs - Django博客不显示图像
- python - 如何用熊猫中的特殊字符替换列中的NULL值