Как разрешить ссылки на элементы содержимого внутри форматированного текста? (Контент.ай - ASP. NET рамки) - PullRequest
0 голосов
/ 14 февраля 2020

Итак, я последовал за Kontent do c с github, который позволяет извлекать контент по ссылке (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 с ошибка на странице, что я считаю нормальным

Я не получаю последнюю часть do c (как при выполнении getString для contentItem ссылка будет работать?), поэтому я хотел бы чтобы знать, как отобразить содержимое на странице перенаправления

Я не знаю, достаточно ли я понятен, и извините за мой engli sh

Вот ошибка, выданная на странице перенаправления

Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.

1 Ответ

1 голос
/ 27 февраля 2020

Последняя часть вики относится к тому, что у вас уже есть:

В этот момент, если я нажму ссылку

Если у вас есть ссылка, по которой вы можете щелкнуть, значит, вы выполнили то, что описывает эта часть статьи.

Что вам нужно - это удовлетворить запрос. Если вы получаете 404, что вы ожидаете, то вы знаете, что вам нужно добавить маршрут в ваше приложение для обработки запроса. В обработчике (контроллер, компонент и т. Д. c.) Извлеките urlSlug из маршрута и используйте его с IDeliveryClient для извлечения элемента, а затем визуализации содержимого. Вам нужно будет фильтровать GetItems вызов с чем-то вроде new EqualsFilter("elements.urlSlug", urlSlug).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...