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();
}
}
运行,即可看到效果
浙公网安备 33010602011771号