1

作为标题,我找不到如何在不使用强类型的情况下获取富文本中的组件对象。

DeliveryItemListingResponse listingResponse = await kentontClient.GetItemsAsync(
     new InFilter("system.type", "property")
);

foreach(var item in listingResponse.Items)
{
     var spec = item.GetLinkedItems("d3cb9f23_7684_0174_0b8d_6320bb61cc62");
}

它抛出一个异常。组件d3cb9f23_7684_0174_0b8d_6320bb61cc62对象存在于私有成员_linkedItemsSource中。我猜GetLinkedItems只在它的元素下搜索。

我们有什么办法可以得到吗?

参考: https ://github.com/Kentico/kontent-delivery-sdk-net/wiki/String-based-rendering-of-items-in-Rich-text

4

1 回答 1

0

是的,一点没错。

GetLinkedItems期望包含链接项目的元素的代号。-> 不是特定链接项目的代号。(不过,这种方法可能会很方便。您可以通过在 repo 中提交问题来请求它:https ://github.com/Kentico/kontent-delivery-sdk-net/issues )

你想做的是:

var linkeditems = item.GetLinkedItems("element_codename");
var yourDesiredLinkedItem = linkeditems.Where(i => i.System.Codename == "d3cb9f23_7684_0174_0b8d_6320bb61cc62");
于 2019-11-20T16:44:32.407 回答