首页 新闻 搜索 专区 学院

asp.net页面继承与命名空间更改的问题

0
悬赏园豆:15 [已关闭问题]

问题一:
网站有多个aspx页面。统一继承自PageThems类
public partial class _Default:PageThemes
{}

//下为PageThemes类
public class PageThemes:System.Web.UI.Page
{
public PageThemes()
{
//
// TODO: Add constructor logic here
//
}
    protected void Page_Preinit(object sender, EventArgs e)
    {
        if (Request.Cookies["pageStyle"] == null)
        {
            Page.Theme = "Default";
        }
        else
        {
            Page.Theme = Request.Cookies["pageStyle"].Value;
        }
    }
}
1、这种写法的缺点是每个apsx页面都要把system.web.ui.page改为Pagethemes,有没有什么好办法不用改页面的继承。让站点内每个aspx自动继承pageThemes?
2、假如站点内有多个文件夹,如admin和pages folder,同理不改页面继承,让admin folder下的所有页面自动继承pageThemes类,让pages folder下面的页面自动继承themes类(themes类与pagethemes类同理,只是应用的page.Theme不同)?


问题2:在一个solution中有多个project.如其中有一个名为Book.Common的class library的项目,则其下面的所有cs文件的命名空间为:book.Common,如果我想把这个项目下所有CS文件的命名空间文件全部改 为:Blog.Common,有没有什么简便方法?

沉默杨的主页 沉默杨 | 初学一级 | 园豆:6
提问于:2008-11-25 13:41
< >
分享
其他回答(4)
0

问题1:

1、没有办法,不过你可以修改文件模板来让每次新建文件时都自动修改这个地方

2、没有这个功能

不过我看你这两个类的名字,呵呵,是不是考虑使用Themes会更好的达到你目的?Themes可能就是用来专门解决你的问题的

问题2:

修改命名空间可以使用查找替换,把查找替换的范围设置为全解决方案即可

丁学 | 园豆:18530 (专家六级) | 2008-11-25 14:00
0

问题2:

在VS中CTR+F,点击“替换”,指定要被替换字符串【book.Common】和替换字符串【Blog.Common】,选择替换范围是当前的Project【如果其他项目已经引用了这个命名空间,那么就选择Entire Solution】,然后点击“全部替换”,就OK了

问题1:

可以先创建所有页面后,采用问题2的解决方法处理即可

是不是可以考虑把PageThemes类的功能放在母板页中处理呢?这样就避免了这问题

上不了岸的鱼 | 园豆:4613 (老鸟四级) | 2008-11-25 14:03
0

同意楼上的说法!另外,你还可以考虑写公共类啊,直接引用多爽啊!谢谢!三多拉幕!

子夜星辰 | 园豆:1613 (小虾三级) | 2008-11-26 09:34
0

高聚合低耦合

没事你继承什么

组合不够用么

建立个common文件夹

在里面写个common类好了

而且还好控制

小眼睛老鼠 | 园豆:2774 (老鸟四级) | 2008-11-26 09:57
0

同意一楼的办法@丁学!!

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2008-11-26 12:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册