2013-09-30 56 views
1

我在ASP.NET应用程序中实现了一个基页面。在这个课堂上,我有一个对象,我希望可以在我的应用程序中使用所有其他页面。不从基页继承的ASP.NET页面

这是我的基本页面执行...

using System; 
using System.Web; 

public class MyBasePage : System.Web.UI.Page 
{ 
    protected User ActiveUser; 

    public MyBasePage() 
    { 
      ActiveUser = new User(); 
    } 
} 

我的问题是我已经做了网页继承这个类,但ActiveUser对象是不可见。这是我继承它的方式。

public partial class Suppliers_Default : MyBasePage 
{ 
} 

我哪里出错了?

+0

它看起来不错。当你说它不可见时,你是否收到构建错误? –

+0

受保护的用户ActiveUser;那么ActiveUser = new User();但你正在使用ActiveUser =新的ActiveUser(); – Ratna

+0

智能感知建议不会将其显示为选项,因此我无法与该对象进行交互。 – Adam92

回答

1

检查您的.cs文件是否将“Build Action”属性设置为“Compile”。

右键/属性/生成操作

+0

我最近将Web站点项目转换为Web应用程序项目,并且BasePage类将其生成操作设置为内容,这很奇怪 - 它来自旧项目中的App_Code。无论如何,将它设置为Compile将其整理出来,谢谢! –

0
public partial class Suppliers_Default : MyBasePage 
{ 
public Suppliers_Default:base(){} 
} 

public class MyBasePage : System.Web.UI.Page 
{ 
    protected User ActiveUser {get;set;}; 

    public MyBasePage() 
    { 
      ActiveUser = new User(); 
    } 
} 
0

你有一类MyBasePage和其他用户类别

using System; 
using System.Web; 

public class MyBasePage : System.Web.UI.Page 
{ 
    protected User ActiveUser; 

    public MyBasePage() 
    { 
     ActiveUser = new User(); 
    } 
} 

,如果你想访问属性/方法你可以用以下两种方式

解决方案1个

public partial class Suppliers_Default : MyBasePage 
{ 
    // Using Object Of MyBasePage/parent class 
    MyBasePage objMyBP = new MyBasePage(); 
    objMyBP.ActiveUser.Methodname(); 
} 

解决方案2

public partial class Suppliers_Default : MyBasePage 
{ 
    //Using Base Keyword 
    Base.ActiveUser.Methodname(); // here Methodname() is from User class 

} 

*您也可以访问属性相同方法