ASP.NET 2.0编译错误:确保此代码文件中定义的类与'inherits'属性匹配

时间:2009-07-06 17:26:16

标签: .net asp.net .net-2.0 code-behind

好的,我完全陷入了这个编译错误。它是一个网站(不是网络应用程序),.NET 2.0。

我在此目录中有一个文件:welcome_teams

文件名:default.aspx

页面声明:

<%@ Page Language="C#" MasterPageFile="~/masters/Site.master" 
AutoEventWireup="true"    CodeFile="default.aspx.cs" 
Inherits="welcome_teams_default" %>`

背后的代码

public partial class welcome_teams_default : System.Web.UI.Page

我一直收到这个错误: 确保此代码文件中定义的类与'inherits'属性匹配

我已尝试删除该文件,并将其再次添加为“新项目”,无论如何,错误仍然存​​在。

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

因此,它与命名空间无关,它与default2.aspx页面有关,指向default.aspx页面。

default2.aspx页面的CodeFile属性设置为“default.aspx.cs”,这搞砸了所有内容。

对于将来可能遇到此问题的任何人,您有时可以通过将CodeFile更改为CodeBehind来解决此问题。

另外,理论上它是一个命名空间问题,但上帝我讨厌网站项目如何处理命名空间。

答案 1 :(得分:1)

最有可能的原因是您的文件位于Web根目录下的文件夹中,当您创建它时,VS会更改生成文件的命名空间。例如,如果您的站点名称是 MyWebsite ,那么默认名称空间就是MyWebsite;

namespace MyWebsite

但是对于welcome_teams中的aspx文件,应该是:

namespace MyWebsite.welcome_teams

所以在您的aspx页面中尝试更改:

<% Page ...  inherits="welcome_teams_default" %>

<% Page .. Inherits="MyWebsite.welcome_teams.welcome_teams_default" %>

答案 2 :(得分:0)

您应该检查default.designer.cs文件,并确保它也具有相同的类名。有时,如果designer.cs文件存在,并且是手动编辑的(但有时由于其他原因),.aspx页面和后面的代码之间的同步可能会被破坏。要查看.designer.cs文件,您需要在项目中显示隐藏文件。