效果演示:http://cms.19870123.cn/Manager/ 进入后点击主题管理,更换后在首页可以查看效果
用户名:test 密码:test
看到很多.net的程序实现模板都是使用标签替换,和ASP PHP等没有区别,如dxbbs等.
但是,大家都知道,在.net中,一个页面是由几个部分类组成:xxx.aspx.cs,xxx.cs,xxx.desinger.cs.
那么,我们就可以把一个aspx文件当着模板,使用urlrewriter与反射来实现模板更换.如:一个列表页里面规定必须有一个id叫做rpt的repeater控件,模板在制作时就加上这个控件.而内容页的话,可以使用反射,把数据库实体对象直接绑定到页面控件.
同时,使用URLREWRITER,不同的模板时指向不同的ASPX页面,ASPX页面的PAGE节的Inherits当然要写好.有点像微软的MVC的那种模式.
补充:当前模板为Default,那么,访问Article/List.aspx时,就URLREWRITER到Theme/Default/Articlt/List.aspx。如果当前模板为Test,访问Article/List.aspx时,就URLREWRITER到Theme/Test/Articlt/List.aspx。当然,这两个List.aspx页面的Inherits是相同的。如果页面内部要调用某个列表话,可以做成自定义控件,让用户调用。也可以做成ASCX控件,让用户可以重写ASCX。同样,Inherits按规定就可以。
没太说得清楚,以后慢慢在说,并附上代码,这儿只给大家提供思路.