日期:2014-05-19  浏览次数:20462 次

|M| 关于给网站所有网页建立一个接口的问题
我加多一个PageBase.cs用来判断用户是否登录
然后
里面有
override   protected   void   OnInit(EventArgs   e)
{
                base.OnInit(e);
                this.Load   +=   new   System.EventHandler(BaseLoad);
}
protected   void   BaseLoad(Object   sender,   EventArgs   e)
{
      这里判断用户是否登录
}

这样在我的页面.aspx.cs可以引用
但是.ascx.cs里面就不可以引用

因为PageBase.cs的
public   class   PageBase   :   System.Web.UI.Page

这样我就不得不为.ascx.cs添加一个
BasePage_For_ascx.cs
然后这个就引用
public   class   PageBase_ascx   :   System.Web.UI.UserControl

虽然现在可以,
但我总感觉两个cs的内容都是一样的可不可以整合在一起啊
谢谢

------解决方案--------------------
不需要
------解决方案--------------------
控件中不需要判断.因为控件是在页面中的.页面中已经有判断了.
------解决方案--------------------
用form验证,或是httphandler,或是直接写在global的onrequest里面
为什么要一个一个页面的写呢?
------解决方案--------------------
其实楼主想问的是 .aspx 页面 和 .ascx 页面 能不能继承同一个基类。

至于怎么验证那是另一回事。

验证绕开了,还会有其他的问题呢。

比如 .aspx的基类要有公司名称的属性,ascx的基类也有公司名称的属性,公司名称当然都是相同的了。


我是写了两份,郁闷。

现在想想可以再写一个类,在两个基类里面调用这个类。



------解决方案--------------------
验证发生在page里面,而ascx不过是整个page的一部分,那么只要ascx所属的page继承了基类,为什么还要为ascx定制呢!?