0

我是 DotnetNuke 的初学者。我正在创建一个项目,它提供了一个可以添加到基于 DotnetNuke 的网站的模块。

我已经在我的 IIS 服务器中配置了 www.dnndev.me 并在它的 DesktopModule 文件夹中创建了项目。我可以成功创建、构建模块并将其添加到 www.dnndev.me,但我不知道在模块项目的解决方案资源管理器中添加 JQuery 的位置。

1- 我应该在哪里添加我的 JS 和 CSS 文件?我尝试通过添加文件夹“Assets”、“Assets/CSS”、“Assets/JS”并将我的文件放在我的解决方案资源管理器中。

2- 如何在ascx页面中包含 JS/CSS 文件?我已经厌倦了跟随

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="View.ascx.cs" Inherits="CustomerDemo.Modules.CustomerDemo.View" %>
<dnn:DnnCssInclude runat="server" FilePath="~/DesktopModules/CustomerDemo/Assets/JS/fullcalendar.min.js" />
<dnn:DnnCssInclude runat="server" FilePath="~/DesktopModules/CustomerDemo/Assets/JS/jquery-ui-timepicker-addon.js" />

通过上述方式.js显示在我的网页源中,但它没有调用。但是,如果我按照以下方式尝试,它会起作用

<script type="text/javascript">
    $(document).ready(function () { $.getScript("http://www.dnndev.me/DesktopModules/CustomerDemo/Assets/JS//jquery-ui-timepicker-addon.js?_=1483026285109", function () {
            if ($('.mmdd').length > 0) {
               $(".mmdd ").datetimepicker();
            }
        });
    });
</script>

谁能建议我如何以及在何处放置.js和“.css”文件以及如何将它们包含在项目中?

我正在使用:Visual Studio 2015 和 DotnetNuke 8 社区

文件路径混乱:

这是我通过右键单击打开文件夹时的物理位置-> 使用文件夹资源管理器打开

F:\websites\dnndev.me\DesktopModules\CustomerDemo\CustomerDemo\Assets

但是当我从文件资源管理器拖动CSS或文件到 ascx 设计页面时,它使用这个位置:“~\DesktopModules\CustomerDemo\Assets\file.css”JS

您可以看到物理路径有 2 个 CustomerDemo 文件夹,从解决方案资源管理器中拖出的文件只有 1 个 CustomerDemo 文件夹。

我不明白这个机制。我应该使用哪一个?有人可以为此清除我的想法吗?

我已经尝试过这种方式作为建议之一,但看起来我错过了一些东西 在此处输入图像描述

4

1 回答 1

0

使用DnnJsInclude客户端资源管理的控制来注册脚本,而不是DnnCssInclude.

在您的 .ascx 中:

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>

<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/CustomerDemo/Assets/JS/fullcalendar.min.js" />

或者在您的代码中,您可以改用 ClientResourceManager API:

protected void Page_PreRender(object sender, EventArgs e)
{
    ClientResourceManager.RegisterScript(this.Page, base.ControlPath + "/Assets/JS/fullcalendar.min.js", 100);
    ClientResourceManager.RegisterScript(this.Page, base.ControlPath + "/Assets/JS/jquery-ui-timepicker-addon.js", 100);
    ClientResourceManager.RegisterStyleSheet(this.Page, base.ControlPath + "/Assets/CSS/module.css", 100);
}
于 2016-12-30T14:55:06.543 回答