ASP.net 错误:代码文件和继承属性不匹配
本文关键字:继承 属性 不匹配 文件 代码 net 错误 ASP | 更新日期: 2023-09-27 17:56:05
在 企业门户 中打开页面会导致 Windows-Event-Log 中显示的错误:
MyControl.ascx.cs(15):错误 ASPNET:确保此代码文件中定义的类与"inherits"属性匹配,并且它扩展了正确的基类(例如 Page 或 UserControl)。
第 15 行在下面的源代码中标有 (X)。
ASCX.CS 文件:
namespace Company.Productgroup
{
(X) public partial class Productname : System.Web.UI.UserControl
{
...
}
}
ASCX 文件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Productname.ascx.cs" Inherits="Company.Productgroup.Productname" %>
ASCX.designer.cs 文件:
namespace Company.Productgroup {
public partial class Productname : System.Web.UI.UserControl
{
...
}
}
我尝试过:
- 将贡品
CodeBehind
更改为CodeFile
,反之亦然 - 从 ASCX 中删除命名空间.cs 从中删除命名空间
- ASCX.designer.cs 将 ASCX 文件中的"继承"属性更改为 产品名称
- /产品组.产品名称
- 搜索谷歌/SO寻求解决方案。在几乎每个结果中,问题是继承属性和名称速度/类名,例如:链接 1、链接 2、链接 3
事实是什么:
- 所有文件都存储在同一个目录中,因此没有路径问题应该发生。
- VS 项目中的默认命名空间设置为
Company.Productgroup
您的designer
文件似乎是问题所在。其中类名Product
,而在其他两个文件中为Productname
。有点奇怪,它会不同步,因为生成了设计器文件,但我已经看到它发生了。尝试手动修复它,看看会发生什么。
更新
根据您的评论,我决定看看我们的一些ASCX,看看有什么不同。在我们的designer
文件中,没有显示继承链。例如:
AutoHideField.ascx.cs
namespace Foo
{
public partial class AutoHideField : System.Web.UI.UserControl
AutoHideField.ascx.designer.cs
namespace Foo
{
public partial class AutoHideField
AutoHideField.ascx
<%@ Control ... Inherits="Foo.AutoHideField" %>