DNN Christoc模块开发模板中的Intellisense不适用于已注册的控件

时间:2016-09-29 09:48:17

标签: asp.net module dotnetnuke intellisense dotnetnuke-7

我在本地安装的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中注册,但我不确定这是否是原因。

我知道这里有一些不同的问题,但是如果有人能说清楚如何修复它们,我将非常感激。

2 个答案:

答案 0 :(得分:0)

一些问题。

关于Intellisense,您使用的是模板设置使用的DNNDEV.ME网址吗?我将从那里开始确保100%的工作正常工作如果您使用的是不同的URL,请右键单击项目,选择属性并在Web选项卡上配置正确的URL。有时这会导致智能感知问题。

关于背后的代码,您可能需要右键单击ASCX文件并“转换为Web应用程序”或类似的东西,这应该生成您可能缺少的.designer文件。

答案 1 :(得分:0)

我找到了解决问题的方法。

为了让Intellisense在DNN程序集中注册Telerik控件和DNN控件,我必须在模块中创建一个bin文件夹并添加以下dll:

  • DotNetNuke.dll
  • DotNetNuke.Web.dll
  • DotNetNuke.WebControls.dll
  • Telerik.Web.UI.dll

然后我重建了模块并重新启动了Visual Studio,Intellisense正在工作。

我仍然遇到注册控件的问题,即TextEditor,URLControl,我必须在代码隐藏中手动注册它们,如下所示:

protected DotNetNuke.UI.UserControls.UrlControl urlControl;
相关问题