所以我从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
呼叫。