如何解析富文本中内容项的链接?(Kontent.ai - ASP.NET 框架)



所以我从github中遵循了Kontent文档,该文档允许从链接中检索内容(https://github.com/Kentico/kontent-delivery-sdk-net/wiki/Resolving-links-to-content-items(

首先,我实现一个解析器,以便在我们单击链接时重定向,如下所示:

public class CustomContentLinkUrlResolver : IContentLinkUrlResolver
{
public string ResolveBrokenLinkUrl()
{
return "/404";
}
public string ResolveLinkUrl(ContentLink link)
{
switch(link.ContentTypeCodename)
{
case "author":
return $"/author/{link.UrlSlug}";
default:
return $"/not_found";
}
}
}

然后我在 IDeliveryClient 中注册我的解析器

client = DeliveryClientBuilder
.WithProjectId(myid)
.WithContentLinkUrlResolver(new CustomContentLinkUrlResolver())
.Build();

此时,如果我单击链接,它将重定向到/author/linkName,并在页面上显示我认为正常的错误

我没有得到文档的最后一部分(如何只是通过在contentitem上执行getString链接即可工作?(,所以我想知道如何在重定向页面上显示内容

我不知道我是否足够清楚,对不起我的英语

这是重定向页面上抛出的错误

说明:HTTP 404。要查找的资源(或其依赖项之一(可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保拼写正确。

wiki 文章的最后一部分引用了您已经拥有的内容:

此时,如果我点击链接

如果您有可以单击的链接,那么您已经完成了本文该部分描述的内容。

您需要的是解决请求。如果您获得预期的 404,那么您知道需要向应用程序添加路由来处理请求。在处理程序(控制器、组件等(中,从路由中提取urlSlug,并将其与IDeliveryClient一起使用以检索项,然后呈现内容。您需要使用类似new EqualsFilter("elements.urlSlug", urlSlug)的内容过滤GetItems呼叫。

最新更新