Как вывести необработанную страницу JSON из репитера Kentico в режиме дизайна портала - PullRequest
0 голосов
/ 12 мая 2018

В режиме портала, как я могу заставить страницу выводить только данные своей веб-части Repeater без формы оболочки asp.net и т. Д.?

Я установил наследование шаблона страницы в значение none, непроверенное наследование заголовка, но безрезультатно, я все еще получаю элементы темы, форму asp.net, заголовок тега html, тело и норму. Я ищу, чтобы избавиться от всех этих периферийных элементов HTML и сохранить только вывод повторителя, который является сырой JSON.

Я пытаюсь добиться вывода необработанного JSON на страницу с помощью веб-части Repeater, сохраняя Repeater в пользовательском интерфейсе CMS Design, где администраторами легко управлять. RAW JSON будет подхвачен JQuery.get (..) или эквивалентным ему для чтения JSON и его анализа, как обычно.

Я пытался объединить веб-часть пользовательского ответа Kentico с повторителем на той же странице, но пользовательский ответ, конечно, уносит любые другие страницы.

Я готов окунуться в комбинированный режим шаблонов ASPX + Portal, если необходимо, но хочу продолжать использовать веб-части Kentico в интерфейсе Design для получения данных.

Я нашел веб-часть Custom Response Repeater в DevNet , но я бы предпочел сам управлять режимом разработки, потому что я мог бы добавить туда некоторые дополнительные веб-части.

В конечном счете, если это невозможно или слишком сложно, я воспользуюсь старым добрым обработчиком ASP.NET ASHX, чтобы получить то, что мне нужно, из API Kentico и вообще оставлю режим Kentico Design вне уравнения.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

На Kentico Marketplace есть пользовательская веб-часть, которая позволит вам сообщить странице, какой тип вывода вам нужен, она называется Веб-часть в API Converter . Загрузите эту веб-часть, импортируйте ее и добавьте в шаблон страницы. Обязательно измените шаблон страницы, чтобы он НЕ наследовал другие страницы или шаблоны.

Затем вы связываете эту веб-часть с веб-частью API-конвертера с веб-частью списка, и это похоже на магию (или базовое кодирование), она преобразует вашу страницу aspx в «сырой» формат независимо от того, что вы укажете.

0 голосов
/ 12 мая 2018

Есть ли причина, по которой вы не хотите использовать существующий веб-сервис /CMSPages/WebService.asmx? Вы можете создать свой собственный метод и вернуть туда свой json:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetMyData(string parameter = "")
{
    // Get your data
    DataTable myData = CustomTableItemProvider.GetItems("customtable.sampletable").Result.Tables[0];
    // return JSON
    string JSONString = Newtonsoft.Json.JsonConvert.SerializeObject(myData);
    this.Context.Response.ContentType = "application/json; charset=utf-8";
    this.Context.Response.Write(JSONString);
}

Но я бы порекомендовал сделать это с Web API

...