我在这里要介绍一种利用aspx和ascx来实现的模版生成技术,而模版语言就是C#。
思路如下:
1. 使用aspx文件作为模版文件。页面不是继承默认的.aspx.cs类,而是继承自自定义的类。
2. 使用ascx文件作为页面的模块。页面不是继承默认的.ascx.cs类,而是继承自自定义的类。
3. 利用反射技术实现根据模版配置信息在模版文件中动态的加载和填充模块(可以通过Page.LoadControl 加载ascx文件)。
4. 生成HTML采用Server.Execute(“xxx.aspx”)。
我们为每个不同功能的模块定义一个类,ascx文件就继承自这些类。这些类中可以加载数据到变量,然后在ascx页面里通过调用这些变量把数据呈现出来。
由于我们aspx和ascx模版文件都是继承自自定义的类,所以我们更换模版风格的时候只需要修改下aspx和ascx文件就可以了,不需要重新编译项目。除非需要添加新的不存在的模块才需要重新编译项目。