首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net 公共步骤继承

2012-08-08 
asp.net 公共方法继承本人是asp.net初学者。很多人说asp.net不能多继承,所以就想写一个公共类。其他页面都继

asp.net 公共方法继承
本人是asp.net初学者。
很多人说asp.net不能多继承,所以就想写一个公共类。其他页面都继承这个类。BasePage页面
但有个问题

BasePage.cs页面这样

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

namespace HIMS.Web.HIMS
{
  public partial class BasePage : System.Web.UI.Page
  {
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  }
}

然后其他页面,比如Add.aspx页面

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using Maticsoft.Common;
using LTP.Accounts.Bus;

namespace HIMS.Web.HIMS.Hz_EmailMessageInfo
{
  public partial class Add : BasePage
  {
  protected void Page_Load(object sender, EventArgs e)
  {
   
  }
  }
}

这样写,但这里没有继承到BasePage,也转不到定义,反正不能用,没实现继承,不是说直接写类名就可以了吗?这里怎么也不行啊??抓狂啊!求指点,谢谢,有完整的例子吗?在网上找了都和我这个不一样,我这个有命名空间的。在这里为啥没继承到呢?求解!

[解决办法]
要么两个类的namespace写成一样,要么写成public partial class Add : global::HIMS.Web.HIMS.BasePage
[解决办法]
public partial class Add : HIMS.Web.HIMS.BasePage
[解决办法]
如果是为了多继承的,推荐使用用户控件,假定有功能A、B、C,可以封装成3个用户控件。某个页面要实现哪些功能,只要拖入相应的用户控件即可。视情况写在用户控件的Page_Init(比如权限判断)或Page_Load方法里。
[解决办法]
a_b_Base表示类的名字是a_b_Base,而a.b.Base表示类的名字是Base,这个类在a.b这个命名空间之下。类名中不能有点。
每一个类都属于某一个命名空间,应该不会默认没有命名空间的。
[解决办法]
完全不要命名空间,试一下.

干吗那么复杂呢
[解决办法]
namespace Hz_OAUI.OnlineAC.InternalBBS
类似的全不要了.
[解决办法]
放在同一个命名空间下就行了,也就是说namespace一样
[解决办法]
.net本身不支持多重继承,可以通过接口来间接实现~

C# code
    interface IFace1    {        void Print();        void Hello();    }    interface IFace2    {        void Print();        void Goodbye();    }    class FacetoFace : IFace1, IFace2    {        #region IFace1 成员        void IFace1.Print()        {            System.Web.HttpContext.Current.Response.Write("这是IFace1的Print函数<br/>");        }        public void Hello()        {            // TODO:  添加 FacetoFace.Hello 实现            System.Web.HttpContext.Current.Response.Write("IFace1 Say:Hello!<br/>");        }        #endregion        #region IFace2 成员        void IFace2.Print()        {            System.Web.HttpContext.Current.Response.Write("这是IFace2的Print函数<br/>");        }        public void Goodbye()        {            // TODO:  添加 FacetoFace.Goodbye 实现            System.Web.HttpContext.Current.Response.Write("IFace2 Say:GoodBye<br/>");        }        #endregion    }
[解决办法]
探讨

我就是想自己理解着简单创建一个能用的公共类。


新建一个网站,写一个文件夹a,再写个子文件夹b,a中有个BasePage页面,b中有Login页面,让Login页面能够继承到BasePage页面的基类嘛。。。至于用命名空间,是项目大,页面多了以后可以加上命名空间便于管理。。就是弄不出来。。郁闷死了,手残啊。。。


[解决办法]
BasePage.cs放在网站app_code下
或者是放在“类库”的项目里,网站引用该类库

热点排行