我已经在我的App_Code文件夹中定义了一个定制控件。当我把它添加到页面,我得到的错误Type 'Global.XXX.xxx.MyControl' is not defined
Designer页面正在预先全局定制控件定义命名空间
类:
Namespace XXX.xxx
Public Class MyControl
Inherits TextBox
...code...
End Class
End Namespace
页用途:
<%@ Register TagPrefix="xxx" Namespace="XXX.xxx" %>
...
<xxx:MyControl runat="server" id="StartTime" />
设计师:
Protected WithEvents StartTime As Global.XXX.xxx.MyControl
所以发生了什么事是Global
正在被预先添加到设计器文件中的命名空间中。出于某种原因,IDE认为我的自定义控件位于全局命名空间中,但据我所知,通过搜索对象浏览器可以看到它不是。手动进入并从设计器文件中删除前面的Global
,可以让我成功构建页面,查看它并测试我的控件的功能,但这远非理想的解决方案,因为每次创建设计器文件时都会重新生成切换到相应的页面。
对于为什么它认为我的自定义控件生活在App_Code文件夹中的任何想法都在Global命名空间中?有什么建议比手动更好的修复?
编辑:也许更好的问题是如何将该名称空间放入全局名称空间,以便在创建设计器文件时它是正确的?
你提到的设计师:我认为你有那么ASCX文件中的用户控件?只是这个页面https://msdn.microsoft.com/en-us/library/t990ks23.aspx说你不能那样做。 –
不,这是一个在App_Code文件夹中定义CustomControl的VB文件。它不是一个带有ascx文件的用户控件,尽管我也尝试过这种方法,但没有成功(不是放在App_Code文件夹中,而是放在项目的正常位置)。 – Crimius
因此,当* VB文件不在App_Code中时,您仍然*获得全局添加? –