【问题标题】:2sxc - Getting URL path from DNN link parameter / Tab ID2sxc - 从 DNN 链接参数/选项卡 ID 获取 URL 路径
【发布时间】:2018-05-17 14:48:34
【问题描述】:

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

我已设法将 JSON 数据馈送到应用程序中,并且正在映射数据。

我想知道“解析”作为 DNN 页面/标签 ID 传入的 URL 的最佳做法是什么。

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

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

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

最后,您可以通过 2sxc API 看到这个数据项以 JSON 提要的形式出现:

将这段数据转换为可用于 SPA 类型应用程序的 URL 的最佳方法是什么?

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

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

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

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

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

提前致谢

【问题讨论】:

    标签: dotnetnuke 2sxc


    【解决方案1】:

    如果你是 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() 或类似方法,但我不知道在哪里或是否确实看到了。

    【讨论】:

    • 如果您能找到客户端版本,我将不胜感激。我很喜欢使用 Razor 语法。但这是一个使用 React 的普通“HTML”或“Token”模板。
    • 对不起,我猜我的记忆是一厢情愿。如果它在那里,我还没有找到它。也许我们需要在 Daniel 面前将其作为功能请求?最近有关于 $2sxc.cms.run() 的工作 - 这似乎可能以某种方式适合这项工作,也许。
    • (dotnetnuke.com/default.aspx?tabid=85) 格式可以正常工作...但我不能自信地说这是最好的方法。
    【解决方案2】:

    Default.aspx?tabid=xx 格式肯定会起作用,因为它是最古老的 DNN 约定,并且仍在后备中使用。网址不是很好,但没关系。

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

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

    【讨论】:

    • 客户对 Default.aspx?tabid=xx 格式感到满意——因为它确实重新映射到友好的 url...我可能会更频繁地使用这种类型的 ReactJS / 2sxc 内容模块 -因此,如果有任何改进,我会在这里更新。
    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 2018-11-13
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多