模糊参考

时间:2009-08-10 21:39:02

标签: asp.net

在我的WAP项目中,每个.aspx的代码隐藏和设计器共享相同的命名空间。例如,默认情况下,我的Main.Master.cs和Main.designer.cs都在OurCompany.Web命名空间中。

当我转到另一个.aspx页面并使用以下内容时,我收到一个“不明确的引用”错误,因为它无法确定我是在谈论我的代码隐藏还是该主页的设计器文件

<%@ MasterType  TypeName="OurCompany.Web.Main" %>

但默认情况下这是VS创建.aspx页面的方式,所以我真的应该关心吗?

3 个答案:

答案 0 :(得分:2)

设计器文件都标记为“部分”类,因此它们不会被编译成自己的类型。

我的猜测是你确实有2个叫做“OurCompany.Web.Main”的课程。像Reflector这样的工具可以让你浏览你的DLL,这样你就可以确定。

答案 1 :(得分:2)

这恰好发生在我身上,你的问题是JIT编译在临时目录中创建程序集的临时“副本”。

确保每个命名空间/部分类声明都“紧密”,检查错误的类名,错误的命名空间。

问题“刚刚消失”对我来说也是如此。重新创建或清理解决方案可能会这样做。希望我能提供更多帮助,但是手动和使用右键菜单清理源代码可能会有所帮助。

答案 2 :(得分:1)

我猜你在课后的代码上有一个母版页和一个同名的网页表单页面。这将阻止您的网站正常工作(如果它可以正常工作)。

我会查看我的aspx.cs文件并查找类名称main(find应该在这里工作)。我打赌你会找到两个名字的文件。您必须将其中一个更改为其他内容。只需确保您还更改.aspx页面中的Inherits和.designer.cs类名称。