我在本地安装的DNN 7.4.1上使用适用于Visual Studio 2015的Christoc模块开发模板创建了一个模块。在我的模块中,我使用Telerik控件以及DNN控件,包括dnn:DnnJsInclude,dnn:TextEditor,telerik:RadGrid等。
我之前在网站上安装了该模块,并通过“创建模块”将其注册为控件。向导,但决定使用模板将其打包为模块,以便我可以在源代码管理中使用它。
我使用模板安装了一个空白模块,然后复制了我的模块的标记和代码。
我对模板的问题是intellisense不再识别我必须注册的任何控件,因此我无法看到这些控件的任何属性。这使得开发非常困难,但模块确实构建了。我正在注册这样的控件:
<%@ Register TagPrefix="dnn" Assembly="DotNetNuke.Web" Namespace="DotNetNuke.Web.UI.WebControls" %>
<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>
<%@ Register TagPrefix="dnn" TagName="TextEditor" Src="~/controls/TextEditor.ascx" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
除此之外,当我使用TextEditor控件时,我的代码隐藏文件无法识别控件的类型,因此我必须将其转换为编译它。此外,当我尝试使用嵌入式代码块时,我得到的错误是当前上下文中不存在mothod,尽管该模块能够构建。
我没有使用Syncfusion控件创建的另一个模块出现此问题,可能是因为相关程序集已在GAC中注册,但我不确定这是否是原因。
我知道这里有一些不同的问题,但是如果有人能说清楚如何修复它们,我将非常感激。
答案 0 :(得分:0)
一些问题。
关于Intellisense,您使用的是模板设置使用的DNNDEV.ME网址吗?我将从那里开始确保100%的工作正常工作如果您使用的是不同的URL,请右键单击项目,选择属性并在Web选项卡上配置正确的URL。有时这会导致智能感知问题。
关于背后的代码,您可能需要右键单击ASCX文件并“转换为Web应用程序”或类似的东西,这应该生成您可能缺少的.designer文件。
答案 1 :(得分:0)
我找到了解决问题的方法。
为了让Intellisense在DNN程序集中注册Telerik控件和DNN控件,我必须在模块中创建一个bin文件夹并添加以下dll:
然后我重建了模块并重新启动了Visual Studio,Intellisense正在工作。
我仍然遇到注册控件的问题,即TextEditor,URLControl,我必须在代码隐藏中手动注册它们,如下所示:
protected DotNetNuke.UI.UserControls.UrlControl urlControl;