在.NET应用程序中使用ASP.NET用户控件(.ascx文件)来填充自己的模板需求,而不是该应用程序是网站吗?在没有Website项目的情况下使用ASP.NET usercontrols进行模板化?
它实际上是一个类库,它将数据放入模板中,然后将其与模板混合,然后吐出。
我不想从头开始写自己的模板系统,所以我正在寻找重用ASP.NET功能来满足我的需求。
有人告诉我,ASP.NET用户控件呈现依赖于IIS。是否有一些黑客或诡计让它在.NET类库中工作?
在.NET应用程序中使用ASP.NET用户控件(.ascx文件)来填充自己的模板需求,而不是该应用程序是网站吗?在没有Website项目的情况下使用ASP.NET usercontrols进行模板化?
它实际上是一个类库,它将数据放入模板中,然后将其与模板混合,然后吐出。
我不想从头开始写自己的模板系统,所以我正在寻找重用ASP.NET功能来满足我的需求。
有人告诉我,ASP.NET用户控件呈现依赖于IIS。是否有一些黑客或诡计让它在.NET类库中工作?
我不完全确定我是否正确地处理了这个问题,但如果您只是在寻找一个模板引擎,您可能需要查看NVelocity,这是Castle Project的一部分。
它允许你创建这样的一个模板(从入门指南撕开网站上):
From: $from
To: $to
Subject: $subject
Hello $customer.Name
We're please to yada yada yada.
然后propulate它像这样:
Template template = velocity.GetTemplate(@"path/to/myfirsttemplate.vm");
VelocityContext context = new VelocityContext();
context.Put("from", "somewhere");
context.Put("to", "someone");
context.Put("subject", "Welcome to NVelocity");
context.Put("customer", new Customer("John Doe"));
StringWriter writer = new StringWriter();
template.Merge(context, writer);
Console.WriteLine(writer.GetStringBuilder().ToString());
除了Rajsh's answer我想指出的是,Visual Studio有一个web deployment project template,它允许您将预编译的 .ascx文件合并到一个程序集中。
它简化了您的部署/安装过程。您不必复制/同步新的ascx文件,只需创建DLL即可。
这里是链接到MSDN article。
好文章,谢谢! – Jonathan 2009-01-14 04:38:22