当前位置:编程学习 > C#/ASP.NET >>

求页面名字

现在有个类BaseSh

有a页面继承它(a:BaseSh)
有b页面继承它(b:BaseSh)
有c页面继承它(c:BaseSh)
有d页面继承它(d:BaseSh)
还有很多
在BaseSh中如何去得加载的时候是哪个页面继承的?

想做成
string name=要取得页面名称
if(name=='b')
{
....
}
else if(name='c')
{
..
}
else if(name='a')
{
..
}
else
{
...
}
--------------------编程问答-------------------- 页面名字是如:a.aspx --------------------编程问答-------------------- 页面名称不重要

你可以修改后台类名称 --------------------编程问答-------------------- 就要这个名字你说不中要!!!!
高手来啊 --------------------编程问答-------------------- 子类可获取父类名称GetType().BaseType 
在父类获取子类名称不通 --------------------编程问答-------------------- GetType().BaseType  
--------------------编程问答-------------------- 不懂楼主的意思,帮顶一下。
string name=typeof(要取得页面名称); --------------------编程问答-------------------- 其实这个还和设计有点关系,你在写父类的时候应该是不知道子类的个数,或者子类的名称的,所以不能根据什么判断

下面的代码希望对你有帮助


class Program
{
    static void Main(string[] args)
    {
        var subTypeQuery = from t in Assembly.GetExecutingAssembly().GetTypes()
                           where IsSubClassOf(t, typeof(Base))
                           select t;

        foreach (var type in subTypeQuery)
        {
            Console.WriteLine(type);
        }
    }

    static bool IsSubClassOf(Type type, Type baseType)
    {
        var b = type.BaseType;
        while (b!=null)
        {
            if (b.Equals(baseType))
            {
                return true;
            }
            b = b.BaseType;
        }
        return false;
    }

}

public class Base { }
public class Sub1 : Base { }
public class Sub2 : Base { }
public class Sub3 : Sub1 { }  

--------------------编程问答-------------------- 给个全局变量保存他的子类所在的页面名称行不 --------------------编程问答-------------------- 不知道 你是不是想做 权限管理。

-----------------------
1. 在每个页面 获取当前url:string urlstr= HttpContext.Current.Request.Url;

2. 然后你 截取字符串...

------------

3.在一个 公共的类库中 写一个方法: 
public static void GetPage(string pagename)
{
 switch(...)
      case ... break;     
} --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
子类可获取父类名称GetType().BaseType 
在父类获取子类名称不通

十分認同 --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
子类可获取父类名称GetType().BaseType 
在父类获取子类名称不通


--------------------编程问答-------------------- 但 随着你页面的增加,你 case 的就要添加。


--------------------编程问答-------------------- 反射?? --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
子类可获取父类名称GetType().BaseType 
在父类获取子类名称不通

同意这种说法,关注更优效的方法 --------------------编程问答-------------------- string name=要取得页面名称
if(name=='b')
{
....
}
else if(name='c')
{
..
}
else if(name='a')
{
..
}
else
{
...
}
换一下思路嘛,把这段代码做成函数,在子类里调用,把子类的name传进来就可以了
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,