【问题标题】:how to get DotNetNuke ModuleID using jquery?如何使用 jquery 获取 DotNetNuke ModuleID?
【发布时间】:2012-07-06 13:14:57
【问题描述】:

全部,

我正在开发一个 dnn 6 模块,但似乎找不到任何方法来使用 JQuery 获取 ModuleID。 ModuleID 不在查询字符串中,似乎存储在上下文中。如果查询字符串中未显示 ModuleID,有谁知道如何使用 JQuery 获取 ModuleID?

我尝试这样做的一种方法是使用 asp:label 控件并在页面加载中将 ModuleID 分配给标签,然后使用 JQuery 获取该标签的 .val()。但是,我不想让 ModuleID 只显示在页面上 - 这很愚蠢! :)

感谢任何提示!

【问题讨论】:

    标签: c# jquery asp.net dotnetnuke


    【解决方案1】:

    您可以简单地在 View.ascx 中的

    <script>
        var moduleId = <%= ModuleId %>;
    </script>
    

    【讨论】:

    • 如果您无权访问源代码来添加如图所示的 moduleId var,您还可以从模块容器
      派生模块 Id - 在这种情况下moduleId 是 4659。使用 jQuery 可以根据此模式派生 Id。
    • 当您将此代码放在外部 JS 文件中时,这不起作用。如果您使用 Angular 或 Knockout 之类的 js 框架并且希望将 js 视图模型代码保存在自己的文件中(这是最佳实践),则需要考虑一些事项
    【解决方案2】:

    这将是唯一的方法,如果你不希望页面中的 id 你也可以有一个隐藏的 span 给那个类 moduleid 然后将 moduleid 添加到数据属性 data-moduleid 然后读出来使用 jquery

    <span class="moduleid" data-moduleid="<%=ModuleControl.ModuleContext.ModuleId%>"></span>
    

    【讨论】:

    • 或更容易使用较早的答案
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签