【问题标题】:Sitefinity get current dynamiccontent item from codeSitefinity 从代码中获取当前的动态内容项
【发布时间】:2014-10-28 01:07:37
【问题描述】:
我目前正在使用 Sitefinity CMS 编写网站。有人可以解释一下如何从 page_load 上的服务器端代码获取当前的动态内容项吗?
我编写了一个用户控件来显示自定义的滑动图像库。我的动态模块中有多种内容类型。用户控件将作为母版页模板的一部分而不是在每个页面上。在每个页面加载时,我想获取与页面关联的当前动态内容项,并检查它是否具有名为“Gallery”的属性。如果是这样,我将提取图像并通过用户控件呈现它们。
谢谢,
布赖恩。
【问题讨论】:
标签:
api
content-type
sitefinity
【解决方案1】:
我假设您的图片是相关内容。这将获取您类型的每个已发布内容项。
var dynamicModuleManager = DynamicModuleManager.GetManager();
var moduleType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.YOURTYPEHERE");
var dcItems = dynamicModuleManager.GetDataItems(moduleType)
.Where(l => l.Status == ContentLifecycleStatus.Master);
foreach (var dcItem in dcItems)
{
//pass the dynamic content item to a model constructor or populate here, then
// get your image this way:
var image = dcItem.GetRelatedItems<Image>("Images").SingleOrDefault();
if (image != null)
{
ImageUrl = image.MediaUrl;
}
}