使用Umbraco获取所有类型的强类型文档

时间:2018-05-16 09:37:04

标签: umbraco umbraco7

我有一个Web服务,我想在其中检索某种内容类型的所有文档,但是作为强类型对象。我试着用这个:

var contentType = Services.ContentTypeService.GetContentType(PensionPoint.ModelTypeAlias);
var points = Services.ContentService.GetContentOfContentType(contentType.Id).ToList();

但是,我得到了IContent对象,我无法做Object.Property。我如何检索相同的项目,但作为强类型对象?

1 个答案:

答案 0 :(得分:4)

您使用的是错误的Umbraco API,您需要使用Umbraco Helper来检索已发布的内容项,而不是返回返回IContent项的Service API。

var umbracoHelper = 
      new Umbraco.Web.UmbracoHelper(Umbraco.Web.UmbracoContext.Current);
var pensionPoints = 
      umbracoHelper.TypedContentAtRoot().First().Descendants<PensionPoint>();

当然,如果您的代码位于控制器或视图中,您可以直接获得UmbracoHelper实例。

另外,请注意上面的代码假设您的内容位于单个“主页”节点下。

最后,如果您的网站包含大量内容,性能可能不会很好,在这种情况下,您可能希望使用XPATH查询并将结果转换为您的类。

相关问题