2sxc - 从DNN链接参数/标签ID获取URL路径

时间:2018-04-25 14:46:40

标签: dotnetnuke 2sxc

我正在努力将2sxc内容WebAPI Feed集成到ReactJS应用程序中。

我设法将JSON数据源添加到应用程序中,并且正在映射数据。

我想知道最好的做法是“解析”作为DNN页面/标签ID出现的URL。

下面我将展示引用的各个要点......

首先是实体/数据类型的设置......

Data Types

然后这是一个填写数据的示例条目...页面链接/ URL设置为指向DNN网站上的另一个内部页面:

Item

最后,您可以通过2sxc API看到此数据项作为JSON Feed发布:

API Feed

将此数据转换为可在SPA类型应用中使用的网址的最佳方法是什么?

没有任何“服务器端”代码,只是在客户端读取JSON提要...

我最初的想法是在JS中解析这段数据,然后提取数字然后使用这样的东西:

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

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

我希望有更多经验的人能够提出更好/更清洁的方法。

提前致谢

2 个答案:

答案 0 :(得分:1)

Default.aspx?tabid=xx格式肯定会有效,因为它是最早的DNN约定,仍然用于后备。网址不是很好,但没关系。

您之所以看到这一点,是因为查询没有为AsDynamic(...)执行自动查找。有一个端点可以查找它们,但它们不是官方的,因此它们可以更改,因此我不想建议您使用它们。

因此,如果你真的想要一个更好的网址,你应该看看DNN是否有一个REST API,或者你可以创建一个小的自己的2sxc-api端点(在api文件夹中)只是为了看看up,然后使用NavigateURL。如果你分享你的作品会很酷。

答案 1 :(得分:0)

如果你是Razor的服务器端,你会做这样的事情:

@using DotNetNuke.Common

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

XXXX = Dnn.Tab.TabID或定义一个包含您想要的标签ID的字符串

我似乎有一个模糊的记忆,我在某处看到Daniel(2sxc)有办法在客户端使用Globals.NavigateUrl()或类似的东西,但我不知道在哪里或者我是否确实看到过。< / p>