【问题标题】:Inherit problem in asp.netasp.net中的继承问题
【发布时间】:2017-07-28 21:28:01
【问题描述】:

在我的 Web 应用程序中,我将代码从其他站点复制并粘贴到我的页面中,以及源代码起始表单 当我运行应用程序时,它会给出这样的错误

“/DomainIV”应用程序中的服务器错误。

编译错误 说明:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。

编译器错误消息:ASPNET:确保此代码文件中定义的类与“继承”属性匹配,并且它扩展了正确的基类(例如 Page 或 UserControl)。

来源错误:

第 1 行:使用系统; 第 2 行:使用 System.Data; 第 3 行:使用 System.Web;

源文件:c:\Inetpub\wwwroot\DomainIV\WhoIs.aspx.cs 行:1

这是我的问题,帮我谢谢你。

【问题讨论】:

标签: c# asp.net


【解决方案1】:

在您的 aspx 页面顶部会有以下内容:

<%@ Page Language="C#" MasterPageFile="~/Test.Master" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="TestApp.Test" Title="Untitled Page" %>

在您的 .cs 文件中,您的类将被定义为:

namespace TestApp
{
    public partial class Test : System.Web.UI.Page
    {

确保 aspx 页面中的继承属性与 .cs 文件中的类定义匹配。在上面的示例中,inherits 属性中为“TestApp.Test”,并且该类必须具有相同的命名空间和类名 TestApp 和 Test。

您可能复制了其中一个文件的全部内容,现在这两个文件不再匹配。

【讨论】:

  • 另外,确保没有其他页面(意外)尝试从相同的代码隐藏文件中继承类。
  • 我复制了一对 aspx 和 aspx.cs 文件作为备份,并将它们留在项目文件夹中。即使这些文件不是项目的一部分,当我构建项目并导致此错误时,它们仍在处理中。从文件夹中删除文件修复了错误。感谢保护者一号 (+1)。
  • 保护器,代码隐藏文件的目的不应该是可重用代码吗?你不应该/想要/从同一个类继承的多个页面吗?
【解决方案2】:

我的建议,使用与源文件名相同的文件名创建新页面。
然后将代码复制并粘贴到新页面(APSX 和代码隐藏)中。每次都为我工作。

【讨论】:

    【解决方案3】:

    在aspx页面中,会有

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    

    在.cs页面中

    public partial class _Default : System.Web.UI.Page{}
    

    继承属性和类名都应该相同。 希望这能解决问题。

    【讨论】:

      【解决方案4】:

      在您的 ASPX 文件中,确保 @Page 声明具有与代码隐藏文件中的类的完整类名匹配的 Inherits 属性。此声明通常是 ASPX 文件的第一行。还要确保文件后面的代码中的类继承 System.Web.UI.Page 并且它不是密封类。

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 1970-01-01
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        相关资源
        最近更新 更多