Я хочу, чтобы мои клиенты могли создавать свои собственные страницы в Kentico с помощью выделенных виджетами. Таким образом, они создают страницу, выбирают шаблон с зоной виджетов, а затем размещают любой виджет, который они хотят.Kentico: получение визуализированного содержимого страницы программно
Что я хочу сделать, я хочу разработать виджет, который извлекает содержимое одной из этих страниц, а затем обрабатывает/инкапсулирует его. Или в более технических словах, я хотел бы иметь содержимое страницы как строку HTML в моем классе виджетов.
К сожалению, API Kentico не предоставляет метод извлечения содержимого страницы или, по крайней мере, я не мог понять, как это сделать. Существует веб-часть Kentico, «заполнитель страниц», которая делает именно то, что мне нужно, однако я не могу найти способ использовать ее функциональность внутри виджета. Я предположил, что могу использовать тег cms:CMSPagePlaceholder
внутри моего widget.ascx, но по какой-то причине он невидим (хотя я могу выбрать множество других элементов управления из пространства имен Kentico CMS).
Я также пробовал получать контент через класс System.Net.WebClient
- без успеха. Все, что я получаю
(401) Несанкционированное
Я могу открыть данный URL в браузере, однако. (Бонусные баллы для вас, если вы можете сказать мне, почему это так. Я наткнулся на эту ошибку 401 в другом контексте (обращаясь к промежуточной веб-службе) и не могу понять, почему. То же самое с постановкой: я могу получить доступ к URL-адрес промежуточного веб-сервиса в браузере, но не изнутри Kentico ... Очень странно)
Некоторые справочные данные: Я разрабатываю клиент, где хранятся мои физические файлы, и я обращаюсь к общей базе данных на сервере , Физические файлы в основном дублируют мой клиент и сервер. Я только подталкиваю измененные файлы веб-частей. У экземпляра Kentico сервера есть другой URL-адрес, чем экземпляр Kentico моего клиента, и я перенаправляю URL-адреса моего клиента на сервер (через настройку «сайт»).
Короче говоря, как получить визуализированный HTML-документ для моего виджета? Если бы это было возможно, это облегчило бы мою жизнь.
Спасибо за ваш ответ! Ваш код очень полезен. – RolandK