asp.net

ASPNET: 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的

2011-04-22

今天做个页面,用到一个用户控件,突然提示上面的错误,上网查,有下面的说法:

1。
可能是你对添加的页面文件进行了重命名引起的,
在你的页面文件(如Indexs.aspx)源码中找到下面这段,也就是在文件头上:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Indexs.aspx.cs" Inherits="Indexs" %>
确认CodeFile属性值和Inherits属性值是否都是指向你的页面类的名称。

2。
情况是这样的:

在web.config文件中配置了 pageBaseType="Pozhu.CMS.Web.CMSPageBase, Pozhu.CMS",新建的aspx页面如果不含有关联的.cs文件,这个aspx页面运行是正常的,但如果关联了.cs文件就会报错“请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。”;

在IIS7下测试没有报错,运行的很好,在IIS6下就会出错;

在google中搜索了一些资料,一般都是说要为cs的类加上名字空间,并且在aspx页面中的Inherits加上相应的名字空间。我照作了,可还是出错。

遇到这种情况的时候,可以修改web.config文件
去掉 pageBaseType="Pozhu.CMS.Web.CMSPageBase, Pozhu.CMS"


3。
编译ASP.NET时,提示“请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如Page 或UserControl)是正确的。”,1.aspx页面中的inherits的命名和aspx.cs中的代码里类名不一致(一般因为这两种页面其中有一个页面修改过,或者全部复制其他的页面代码)2.可能自己加过命名空间,去掉后编译正常,但是我希望加入命名空间,解决方式:在ASPX页面中的inherits后加入命名空间的名称,比如原来是inherits="index",命名空间为category,现在改成inherits="category.index"即可
 

可对比网上的说法,那些错误我都没有,命名空间没错,页面名字也没有错,正当不解的时候,发现我的 aspx页面里的<% for()%> 里面的for语句对应的<%}%> 里面没有写},难道是这里的错误?填写上后,回复正常。