获取 Umbraco 13 中特定文档类型的所有内容项

问题描述 投票:0回答:1

我正在创建一个 API 控制器来获取 Umbraco 中的内容项。我们已经创建了多种文档类型,并且每种文档类型都有一个控制器类。每个控制器应该有一个用于获取该文档类型的所有内容项的方法,以及另一个用于根据其 Umbraco 节点 ID 获取单个内容项的方法。

我当前的解决方案涉及访问文档类型的 Umbraco 上下文,然后使用内容服务来获取内容项。但是我不确定哪种方法最适合这项工作。

GetPagedOfType
的工作原理是它获取正确的内容项,但最好我想简单地返回所有内容,而不需要指定页面索引和页面大小。正确的做法是什么?

    using (UmbracoContextReference context = _contextFactory.EnsureUmbracoContext())
    {
    using (_scopeProvider.CreateScope())
    {
        var aktivitetContentType =
            context.UmbracoContext.Content.GetContentType("aktivitet")
            ?? throw new Exception("Umbraco content type is null.");

        var aktiviteter = _contentService.GetPagedOfType(
            aktivitetContentType.Id,
            0,
            100,
            out var totalAktivitetRecords,
            null
        );

        var aktivitetMapper = new AktivitetMapper(_contentService);

        var aktiviteterDto = aktiviteter.Select(aktivitetMapper.Map).ToList();

        return aktiviteterDto;
    }
}
c# umbraco
1个回答
0
投票

您可以通过使用 GetContentOfContentType 方法来做到这一点,它不需要页面索引/页面大小,只需替换这部分

        var aktiviteter = _contentService.GetPagedOfType(
        aktivitetContentType.Id,
        0,
        100,
        out var totalAktivitetRecords,
        null
    );

有了这个

  var aktiviteter = _contentService.GetContentOfContentType(aktivitetContentType.Id);
© www.soinside.com 2019 - 2024. All rights reserved.