
| 十天初涉 asp.net(二)(模板页制作) |
| 更新时间:2010-1-4 0:00:00 |
|
2009-11-11 15:06上一节里我们大致是学习了创建解决方案及解决方案下的项目,其中黑色粗体的项目就是启动的默认项目,其它的都是附属的类项目。那么,我们这一节就实现一下用模板类来替换标签以输出程序处理过的内容。 先前,我们有两个项目“st.page”和“st.base”。由于 st.page 是主运行项目,虽然模板类可以建在这个项目里,但是考虑到层次性,还是建议把模板类这些基本的类库建立在 st.base 下面。那么,我们就先在 st.base 项目下建立一个类,名为“template”:在 st.base 项目上点鼠右键,然后选择“添加”、“类”,然后将类名称改为 template.cs 后点确定。
在类里,我们需要建立几个过程:模板初始化、设置标签及输出。在生成好的类文件里,我们需要在 public class template 过程里加入这些过程: //定义一个私有变量来储存文件的 html内容 string shtmlcode = string.empty; //然后设置一个过程(注意这里是和类名同名的)来作为实例化类时代进参数 public template(string path) { //将取得的文件的内容赋值给变量 shtmlcode = system.io.file.readalltext(httpcontext.current.server.mappath(path)); } //设置标签的过程 public void settag(string tag, string content) { //将变量的内容里的某些标签内容替换掉,这里设置的标签符号暂时为“{”和“}” shtmlcode = shtmlcode.replace("{" + tag + "}", content); } //最后是输出的过程,因为是直接输出,所以没有定义过程类型,其实这里可以定义成字符串,方便前台再次进行处理 public void display() { //直接输出变量内容 httpcontext.current.response.write(shtmlcode); }
然后,我们在 st.page 项目下的 default.aspx.cs 里来用一下我们做的这个模板类吧,在 protected void page_load(object sender, eventargs e) 过程里的内容换成下面这些: //声明并带参数 st.base.template otpl = new st.base.template("template/default.htm"); //设置标签的过程,可执行多次 otpl.settag("tag", "hello world"); otpl.settag("url", "www.roclog.cn and www.iroop.com"); //输出内容,执行此步之后,就尽量不要再出现输出语句了 otpl.display(); <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>{tag}</title> </head> <body> 我们的地址是: {url}. </body> </html> |














