我有一个ASP.NET 3.5 Web应用程序项目,我正在尝试实现可搜索的gridview。我最初将该项目作为网站启动并将其转换为Web应用程序。转换后,我的类最终在文件夹Old_App_Code中,并被称为SearchGridView.vb。
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Drawing.Design
<Assembly: TagPrefix("MyApp.WebControls", "SearchGridView")>
Namespace MyApp.WebControls
#Region "TemplateColumn"
Public Class NumberColumn
Implements ITemplate
Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
End Sub
End Class
#End Region
<ToolboxData("<{0}:SearchGridView runat=server></{0}:SearchGridView>")> _
<ParseChildren(True, "SearchFilters")> _
Public Class SearchGridView
Inherits GridView
类文件继续,但这是它的第一部分。
不幸的是,我收到了错误消息 警告1项目级别中指定的命名空间或类型Imports的“MyApp.WebControls”不包含任何公共成员或无法找到。确保定义了名称空间或类型,并且至少包含一个公共成员。确保导入的元素名称不使用任何别名。 DielWebProj
在web.config中,我为MyApp.WebControls添加了一个名称空间标记,我在.aspx页面中也包含了一个导入标记。
任何人都可以解释为什么会出现这个错误以及我将如何补救它?
谢谢, SID
答案 0 :(得分:1)
我有一个大致相似的问题。我有一个使用自定义控件的网站项目,继承自GriView,位于app_code文件夹中。我收到了同样的错误,但是注意到它发生在我将第二个类或模块添加到app_code之后,如果我删除它就会消失。
因此,我现在的解决方法是将我的自定义控件作为app_code的唯一占用者。
一个选项可能是制作自己项目的控制部分并将其添加为对我们网站/应用的引用?
如果我能找到合适的解决方案,我会更新。
编辑: 好吧,在我的情况下,这是因为我使用的控件是用C#编写的,而项目的其余部分和我添加到app_code的类都是用VB编写的。 app_code文件夹被编译为单个程序集,因此不同语言的类不能共享它,除非您创建单独的子文件夹并执行一些配置文件jiggerypokery。更多详情here