2sxc - получение URL-адреса из параметра ссылки DNN / идентификатора вкладки - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю над интеграцией содержимого WebAPI 2sxc в приложение ReactJS.

Мне удалось получить поток данных JSON в приложение, и я нахожусь в процессе отображения данных.

Мне интересно, как лучше всего "разрешить" URL-адрес, который отображается как идентификатор страницы / вкладки DNN.

Ниже я продемонстрирую различные моменты, на которые ссылаются...

Сначала настройка объекта / типов данных ...

Data Types

Тогда это пример записи с даннымизаполнено ... Ссылка на страницу / URL настроена так, чтобы указывать на другую внутреннюю страницу на сайте DNN:

Item

Наконец, вы можете увидеть этоэлемент данных поступает в виде JSON-фида через API 2sxc:

API Feed

Как лучше всего преобразовать этот фрагмент данных вURL, который можно использовать в приложении типа SPA?

Не происходит никакого кода на стороне сервера, просточтение канала JSON на стороне клиента ...

Моя первоначальная идея состояла в том, чтобы проанализировать этот фрагмент данных в JS, извлечь число и использовать что-то вроде этого:

http://www.dotnetnuke.com/tabid/85/default.aspx

http://www.dotnetnuke.com/default.aspx?tabid=85

Я надеялся, что кто-то с большим опытом сможет предложить лучший / более чистый подход.

Заранее спасибо

Ответы [ 2 ]

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

Формат Default.aspx?tabid=xx, безусловно, будет работать, поскольку он является самым старым соглашением DNN и до сих пор используется в качестве запасного варианта. URL не хорошие, но все в порядке.

Причина, по которой вы видите это, заключается в том, что запрос не выполняет автоматический поиск, а AsDynamic(...) делает для вас. Существует конечная точка для их поиска, но они не являются официальными, поэтому они могут измениться, и поэтому я не хочу предлагать вам их использовать.

Так что, если вы действительно хотите более хороший URL-адрес, вы должны либо увидеть, есть ли у DNN REST API для этого, либо вы можете создать небольшую собственную конечную точку 2sxc-api (в папке api), чтобы просто посмотреть, затем с помощью NavigateURL. Было бы круто, если бы вы поделились своей работой.

0 голосов
/ 27 апреля 2018

Если бы вы были на стороне сервера в Razor, вы бы делали что-то вроде этого:

@using DotNetNuke.Common

    <a href="@Globals.NavigateURL(XXXX, "", "Dept=" + deptQS, "View=List")">View List</a>

XXXX = Dnn.Tab.TabID или определите строку с нужным идентификатором вкладки

Кажется, у меня есть расплывчатая память, которую я где-то видел, что у Даниэля (2sxc) есть способ использовать Globals.NavigateUrl () или аналогичный на стороне клиента, но я понятия не имею, где или если я действительно видел это.

...