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

How to resolve links to content items inside a rich text ? (Kontent.ai - ASP.NET framework)

所以我遵循了 github 中的 Kontent 文档,它允许从 link (https://github.com/Kentico/kontent-delivery-sdk-net/wiki/Resolving-links-to-content-items)

中检索内容

首先,当我们点击 link 时,我会实现一个解析器来重定向:

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();

此刻,如果我点击 link,它将重定向到 /author/linkName,页面上出现错误,我认为这是正常的

我没有得到文档的最后一部分(如何通过对 contentItem 执行 getString link 来工作?)所以我想知道如何在重定向中显示内容第

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

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

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.

last part of the wiki 文章引用了您已有的内容:

At this moment if i click on the link

如果您有一个可以点击的 link,那么您已经完成了文章那部分描述的内容。

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