看起来您遇到了一个文本编辑器控件类型未知的问题,因此当您从代码隐藏访问它时,它的类型是 a UserControl
,而不是 a DotNetNuke.UI.UserControls.TextEditor
。
这是因为您引用了来自 DotNetNuke 源的控件,它不是模块项目的一部分,因此 Visual Studio 不知道您在说什么。解决此问题的第一种方法是将控件的声明从设计器文件移动到您的代码隐藏,并将类型更改为TextEditor
而不是UserControl
.
解决此问题的更好方法是将项目的属性更改为指向 DNN 站点,以便 Visual Studio可以了解控件。这需要让您的项目位于向 IIS 注册的 DNN 站点内。然后,您可以转到项目设置中的 Web 选项卡,然后在Servers部分中,选中Use Local IIS Web server单选按钮。然后将Project Url设置为指向您模块的文件夹(例如http://dnndev.me/DesktopModules/MyModule
)。选中Override application root URL复选框,并在此处输入站点的根目录(例如http://dnndev.me
)。这应该允许 Visual Studio 找到控件并从中解析正确的类型。您可能需要在 ascx 控件中进行更改并重新保存它,然后才能正确更新它。