关于.net实现网站模板机制(非标签替换)

    效果演示: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按规定就可以。

    没太说得清楚,以后慢慢在说,并附上代码,这儿只给大家提供思路.

原文地址:https://www.cnblogs.com/leehom0123/p/1374701.html