ASP.NET下生成静态简单实例

一直都没有过多的关注ASP.NET生成静态的程序,今天研究了哈!用到了网上说最流行的:NVelocity

  百度、google搜索一下,哇,多得不得了!照着复制些代码试了哈,不行啊!总是这里错,那里不行的,总是不能正常运行!哎!人家那么多人写出来的程序总不可能每个都有问题吧,所以检查自己的,最终发现,NVelocity.dll文件是2003年10月29日, 0:37:20修改,哎!那时.NET还不咋个用这个东西吧!呵呵,所以确定是版本问题,到官网上去也没有找到更新的,可能是英文不好,没找到吧!最后在百度里一个网友的例子里有一个高级版本,下载来用,恩!不错,修改时间:2008年8月17日, 22:58:26就是不一样,实例一套用,运行,OK,搞定!以后就好用了!

实例如下:

1.建立一个:myTemplate.vm模板文件

 

From: $From
To: $To
Subject: $Subject

Hello $name

We're please to yada yada yada.

 

2、随便建立一个xx.aspx文件(如:Default.aspx)设计视图都用不着了

在xx.aspx.cs文件里引入命名空间

//
using NVelocity;
using NVelocity.App;
using NVelocity.Runtime;

在代码区中写入:

 

 protected void Page_Load(object sender, EventArgs e)
    {
        VelocityEngine vltEngine = new VelocityEngine();
        vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
        vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, Server.MapPath("~/"));
        vltEngine.Init();

        VelocityContext vltContext = new VelocityContext();
        vltContext.Put("From", "asdfasdf");
        vltContext.Put("To", "chenqiao");
        vltContext.Put("Subject", "hlooo");
        Template vltTemplate = vltEngine.GetTemplate("myTemplate.vm");
        //

       System.IO .StringWriter vltWrite=new System.IO.StringWriter();
        vltTemplate.Merge(vltContext,vltWrite);
       // Response.Write(vltWrite.GetStringBuilder().ToString());
        using (System.IO.StreamWriter writer2 = new System.IO.StreamWriter(Server.MapPath("~/html/") + "text.html"))
        {
            writer2.Write(vltWrite);
            writer2.Flush();
            writer2.Close();
        }

    }

运行,即可看到效果

posted @ 2009-05-29 23:21  cqBlogs  阅读(439)  评论(1)    收藏  举报