这在网站项目中一次又一次地出现。网站项目中没有命名空间的概念,引用控件可能会出现问题。浏览第一个链接上的一些评论:
http://west-wind.com/weblog/posts/3016.aspx http://west-wind.com/weblog/posts/3016.aspx
http://forums.asp.net/p/1035070/1428363.aspx http://forums.asp.net/p/1035070/1428363.aspx
http://www.codersbarn.com/post/2008/06/ASPNET-Web-Site-versus-Web-Application-Project.aspx http://www.codersbarn.com/post/2008/06/ASPNET-Web-Site-versus-Web-Application-Project.aspx(披露,最后一个链接是我自己的博客)
尝试将用户控件放入 App_Code 文件夹中。更好的是,改用 Web 应用程序项目,您应该能够避免此问题。
UPDATE
解决网站项目中访问用户控件问题的一种方法是内联代码,然后将用户控件放入 App_Code 文件夹中:
http://odetocode.com/blogs/scott/archive/2005/10/01/asp-net-2-0-user-controls-in-app_code.aspx http://odetocode.com/blogs/scott/archive/2005/10/01/asp-net-2-0-user-controls-in-app_code.aspx
就我个人而言,这充其量只是一个草率的黑客行为,微软不推荐它:
http://msdn.microsoft.com/en-us/library/t990ks23.aspx http://msdn.microsoft.com/en-us/library/t990ks23.aspx
我将使用 (.cs) 将其创建为自定义服务器控件,并将其放入 App_Code 文件夹中。这应该可以解决引用问题。最终,网站项目并不是为了严肃的工作而设计的,这只是原因之一。您最好的选择是将其构建为 Web 应用程序项目 - 我想不出选择网站模板的任何逻辑原因(也可以通过 WAP 获得编译优化)。