【问题标题】:Adding a custom base class for my asp.net page yields error为我的 asp.net 页面添加自定义基类会产生错误
【发布时间】:2013-05-02 00:33:54
【问题描述】:

我正在尝试使用自定义派生页面,而不是 System.Web.UI.Page 作为我的网页的基础,但是 Visual Studio 2012 (ASP.Net) 拒绝识别新的基类。代码看起来不错,只是VS无法识别新的基类。

  1. 我在项目根目录下创建了一个名为 App_Code 的文件夹
  2. 在该文件夹中,我添加了一个名为 SitePage.cs 的新 ASP.net 类
  3. 进入SitePage.cs,这里是内容

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Web;  
    using System.Web.UI;  
    
     public class SitePage : System.Web.UI.Page
     {  
          protected override void OnPreInit(EventArgs e)  
             {  
                   base.OnPreInit(e);  
           }  
    
    public SitePage()  
    {  
    }  
    

    }

  4. 在网页后面的代码中,比如 Default.aspx.cs,我尝试替换

    公共部分类默认:页面

public partial class Default : SitePage

问题是 SitePage 有一条弯曲的红线。 SitePage 未出现在选项下拉列表中,不知道为什么,并产生错误“找不到类型或命名空间名称 'SitePage'。”

我在 Visual Studio 中使用 ASP.Net v4.0(非 MVC)。我创建了一个全新的项目来测试/解决这个问题,所以没有潜在的包袱。

想法?

【问题讨论】:

  • SitePage 是否与 Default.aspx.cs 在同一个命名空间中?

标签: c# asp.net


【解决方案1】:

在 Default.aspx.cs 知道它是什么之前,您必须将其作为参考(在解决方案资源管理器中查找“参考”选项)。

【讨论】:

  • 感谢您的快速回复。没有选项“引用”,但解决方案是将“构建操作”从“内容”更改为“编译”。谢谢你让我过去了。这个问题并不明显。
【解决方案2】:

在您创建自定义基类之后,但您从页面更改基类之前,您需要构建项目。

所以,现在你要做的是:

  • 确保Default 继承自System.Web.UI.Page
  • 构建您的项目
  • 重新应用SitePage 作为Default 的基类

【讨论】:

  • 在那之后我多次构建了这个项目。的确,我可能需要在清理后构建项目两次,但最直接的问题是,对我来说并不明显,我必须将构建操作从 Visual Studio 提供的默认值“内容”更改为“编译”。我认为所有 C# CS 页面都已编译。我有大量的 CS 类页面,编译得很好。我不遵循差异。有人想吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2015-11-16
  • 2019-11-28
相关资源
最近更新 更多