0

所以我遵循了 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 并确保其拼写正确。

4

1 回答 1

1

wiki 文章的最后一部分是指您已经拥有的东西:

此时如果我点击链接

如果您有一个可以单击的链接,那么您已经完成了文章中描述的部分。

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

于 2020-02-27T17:52:24.333 回答