十天初涉 ASP.net(二)

上一节里我们大致是学习了创建解决方案及解决方案下的项目,其中黑色粗体的项目就是启动的默认项目,其它的都是附属的类项目。那么,我们这一节就实现一下用模板类来替换标签以输出程序处理过的内容。
先前,我们有两个项目“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);
  • }
这里要提醒一下,这个不能像前一节的 Default.aspx.cs 里直接使用 Response.Write 过程。因为在类库里没有相关的名字空间,所以必须带名字空间写成 HttpContext.Current.Response.Write 才行。那么,最简单的模板类就已经完成了,接下来,我们要在 ST.Page 里引用 ST.Base,不然是没办法使用的哦,方法很简单:在 ST.Page 项目或者此项目下的“引用”上点鼠标右键,选择“添加引用”,然后在“项目”选项卡里选择 ST.Base 后点确定,看到引用里有这个项目名称即可。

然后,我们在 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();
写完语句之后,并不是说我们要做的都做完了。看看在声明模板类的时候带进的那个文件路径,好像我们还没有这个文件吧?那就建一个!前一节我们已经创建过 Template 文件夹,所以现在我们只需要在这个文件夹里创建 Default.htm 文件就行了。建立方式和前面所将的都差不多,在文件夹上点有键选择“添加”、“新建项”,然后选择“HTML 页”后把文件名改为“Default.htm”就行。内容的话,当然就可以完全自定义了哦~但是其中有两个标签,{Tag} 和 {URL} 是区分大小写的,注意一下。例如我们 Default.htm 的代码是(因为存在中文,所以必须是 UTF-8 编码):
    <!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"
    c
    />
    <title>{Tag}</title>
  • </head>
    <body>
  • 我们的地址是: {URL}.  </body>
  • </html>
由于考虑到实际应用中 .htm 后缀的文件可能会被下载或盗窃,所以,可以把存放代码文件的后缀改为 .config 这些就行。好了~我们这一节的内容也就差不多完了,最后,可以按 F5(或者 Ctrl+F5)看看输出。下一节,我们着重讲一下类里面使用静态过程的方法及制作一个简单的数据库。
身处当今繁芜浮燥的时代,人如飘萍,实在无法把握自己的明天。只好自己经营自己的心境,抚摸自己的孤独。有如临风奔命的鸟,停下来的时候,认真地对着一汪清水仔细地梳理着自己的羽毛。我常常是在寂寞中孤独地梳理着自己的思绪。用书来喂养自己的孤独;用音乐来平息内心汹