2013-05-01 63 views
2

我想使用自定义派生页面,而不是System.Web.UI.Page作为我的网页的基础,但是Visual Studio 2012(ASP。 Net)拒绝承认新的基类。代码看起来很健壮,只是VS无法识别新的基类。添加自定义基类为我的asp.net页面产生错误

  1. 我创建了一个文件夹断称为项目的根的,App_Code文件
  2. 到该文件夹​​添加我叫SitePage.cs
  3. 进入SitePage.cs一个新的ASP.net类,这里是内容

    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)。我创建了一个全新的项目来测试/处理这个问题,所以没有潜在的包袱。

想法?

+0

是SitePage与Default.aspx.cs位于同一名称空间中? – Josh 2013-05-01 16:29:42

回答

2

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

+0

感谢您的快速回复。没有选项“引用”,但解决方案是将“构建操作”从“内容”更改为“编译”。谢谢你让我过去。这个问题并不明显。 – 2013-05-01 16:37:48

0

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

所以,现在你要做的是:

  • 建立从System.Web.UI.Page
  • 确保Default继承生成项目
  • 再涂SitePage作为基类Default
+0

之后,我多次构建了该项目。诚然,我可能需要在清理完成后两次构建项目,但眼前的问题,对我而言并不明显,是我必须将构建操作从Visual Studio默认提供的“内容”更改为“编译”。我认为所有的C#CS页面都被编译。我有很多类CS页面,很好地编译。我不追随差异。想到任何人? – 2013-05-01 16:42:05

相关问题