我是 dotnetnuke 的新手,所以我不知道如何将 js 文件与模块链接,控制 dotnetnuke 中的模板。
任何人都可以帮助我吗...
我是 dotnetnuke 的新手,所以我不知道如何将 js 文件与模块链接,控制 dotnetnuke 中的模板。
任何人都可以帮助我吗...
如果你想包含 JS 文件,你应该把它们放到你模块中的一个文件夹中(通常是一个 JS 文件夹)
然后在 Codebehind 中,您可以使用以下语法
ClientResourceManager.RegisterScript(Parent.Page, "~/Resources/Shared/scripts/knockout.js");
ClientResourceManager.RegisterScript(Parent.Page, "~/desktopmodules/DnnChat/scripts/moment.min.js");
ClientResourceManager.RegisterScript(Parent.Page, "~/desktopmodules/DnnChat/scripts/DnnChat.js",150);
示例来自:https ://github.com/ChrisHammond/dnnCHAT/blob/master/View.ascx.cs
我就是这样做的。我构建了这个辅助函数。注意:这需要 DNN 6.1 及更高版本
protected void InsertClientScripts(string scriptUrl, int priority = 100, ScriptLocation scriptLocation = ScriptLocation.Default)
{
switch (scriptLocation)
{
case ScriptLocation.Header:
ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnPageHeaderProvider");
break;
case ScriptLocation.BodyTop:
ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnBodyProvider");
break;
default:
ClientResourceManager.RegisterScript(this.Page, scriptUrl, priority, "DnnFormBottomProvider");
break;
}
}
public enum ScriptLocation
{
Header,
BodyTop,
Default
}
这将允许您利用内置的客户端依赖框架。如果脚本已经存在,则避免插入脚本,允许压缩,可以指定位置(标题、正文顶部、正文底部),还可以设置脚本优先级。如您所见,默认优先级为 100(数字越小表示位置越高),脚本的默认位置为 body-bottom。祝你好运。
我不相信 Chris Hammond 的回答会允许它利用允许压缩、最小化和组合文件的客户端依赖框架。所以,我认为最好使用 DNNJsInclude。您可以在此处了解更多信息:http: //www.dotnetnuke.com/Resources/Wiki/Page/Client-Resource-Management-API.aspx