在没有网站项目的情况下使用ASP.NET用户控件进行模板化?

时间:2009-01-14 04:26:28

标签: asp.net ascx templating

有没有办法在.NET应用程序中使用ASP.NET用户控件(.ascx文件)来填充我自己的模板需求,而该应用程序不是一个网站?

它实际上是一个类库,它将数据输入,与模板结合,然后吐出来。

我不想从头开始编写自己的模板系统,所以我希望根据自己的需要重用ASP.NET功能。

我被告知ASP.NET用户控件呈现依赖于IIS。是否有一些黑客或技巧使它在.NET类库中工作?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我不完全确定我是否正确地遵循了这个问题,但如果您只是在寻找模板引擎,您可能需要查看NVelocity,这是Castle Project的一部分。

它允许您创建这样的模板(从网站上的入门指南中删除):

From: $from
To: $to
Subject: $subject

Hello $customer.Name

We're please to yada yada yada.

然后像这样推测它:

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());

答案 2 :(得分:0)

Rajsh's answer之外,我想指出Visual Studio有一个web deployment project template,它允许您预编译 .ascx文件到一个程序集中

它简化了您的部署/安装过程。您不必复制/同步新的ascx文件,只需创建DLL。

以下是MSDN article的链接。