Web UserControl扩展了扩展Page Class的自定义类

时间:2015-08-05 14:53:46

标签: c# asp.net .net inheritance user-controls

我正在ASP.NET 3.5上创建一个应用程序。在我的应用程序中,我创建了一个管理SEssion信息的类,因此所有Web form (.aspx) pagesUser Controls (.ascx) pages都将扩展我的自定义类以访问会话信息。

这是我的自定义类

public class ManageSession<T> : System.Web.UI.Page
{
    private const string SESSION_NAME = "NewSession";

    public T SessionData 
    {
        get
        {
            T sessionImp = (T)Convert.ChangeType(Session[SESSION_NAME],typeof(T));
            if (sessionImp == null )
                System.Web.HttpContext.Current.Response.Redirect("~/index.aspx");

                return sessionImp;
        }
        set
        {
            Session[SESSION_NAME] = value;
        }
    }

    public T ViewStateData
    {
        get
        {
            T sessionImp = (T)Convert.ChangeType(ViewState[SESSION_NAME], typeof(T));                
            return sessionImp;
        }
        set
        {
            ViewState[SESSION_NAME] = value;
        }
    }
}

现在我已经创建了一个BasePage类,我将在每个页面类上进行扩展。

public class BasePage :  ManageSession<UserSession>
{

}

在我的Default.aspx页面上,我将如何扩展BasePage类以使用会话信息。

public partial class _Default : BasePage
{
    this.SessionData             // till here everything is fine, I am able to access SessionData Property of my MySession<> class.
}

但是当我尝试在UserControl中扩展BasePage类时,我收到错误并且无法扩展UserControl的BasePage类。

// This MyControl is basically a Web User Control, Initially extended from System.Web.UI.UserControl     
public partial class MyControl: BasePage
{  }

当我执行应用程序时,这就是我得到的错误

  

&#39; MyControls&#39;这里不允许,因为它没有扩展类   &#39; System.Web.UI.UserControl&#39;

如何将我的BasePage类用于ASPX页面和UserCOntrols?或者请指导我任何其他解决方案?

0 个答案:

没有答案