有没有一种方法可以使用 ASP.NET 用户控件(.ascx 文件)来满足我自己在 .NET 应用程序中的模板需求,而无需将该应用程序作为网站?
它实际上是一个类库,它将接收数据,将其与模板组合,然后将其吐出。
我不想从头开始编写我自己的模板系统,所以我希望重新使用 ASP.NET 功能来满足我的需要。
有人告诉我 ASP.NET 用户控件渲染依赖于 IIS。是否有一些技巧可以让它在 .NET 类库中工作?
有没有一种方法可以使用 ASP.NET 用户控件(.ascx 文件)来满足我自己在 .NET 应用程序中的模板需求,而无需将该应用程序作为网站?
它实际上是一个类库,它将接收数据,将其与模板组合,然后将其吐出。
我不想从头开始编写我自己的模板系统,所以我希望重新使用 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.
然后像这样推广它:
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 的回答,我想指出 Visual Studio 有一个Web 部署项目模板,它允许您将.ascx 文件预编译到单个程序集中。
它简化了您的部署/安装过程。您不必复制/同步新的 ascx 文件,只需创建 DLL。
这是MSDN 文章的链接。