1

目标是使用托管在应用程序中的模板(可能使用 cassini)生成一些 html 报告和 html 电子邮件

因此报告文件将保存在 app_home\Report\Templates*.MyReport 文件中

该应用程序将允许选择报告 (.aspx) 页面,使用 cassini/asp.net 托管 api 加载它,处理一些自定义标记以填充数据

生成的 html 可以在 webbrowser 控件中查看,也可以作为 html 电子邮件发送

有没有更好的办法 ?此外,任何关于使用 cassini 的指示都会很棒

4

2 回答 2

0

最好将 xslt 用于此类任务 - 您可以将数据模型序列化为 xml 文档,然后可以将带有 xsl 模板的 xml 文档转换为 html。

于 2009-07-14T21:12:39.963 回答
0

AFAIK,您不能将 Cassini 与您的应用程序一起分发。还有其他桌面网络服务器,但它们都不是 100% 与 asp.net 兼容的。在我看来,您的解决方案将太复杂而无法实施。

编辑

从这篇文章中了解到

我个人喜欢上面提到的 StringTemplate 选项,但您实际上可以在桌面应用程序中托管 ASP.NET 运行时。

West Wind Technologies的Rick Strahl提供了如何设置的详细示例: 使用 ASP.Net 运行时扩展具有动态 HTML 脚本的桌面应用程序

以下是其他几个示例:

其他选择

备选方案 1

一种简单的解决方案是在模板 HTML 中进行简单的替换(使用您自己的处理器,您就可以开始使用了。

像这样的东西:

<table>
<tr>
  <th>Name</th>
  <th>Phone</th>
</tr>
<tr>
  <th>$Name</th> <!-- you should run a replace with $Name to the name -->
  <th>$Phone</th>
</tr>

备选方案 2

使用像StringTemplate这样的模板引擎(查找 C# 实现)。这篇 CodeProject 文章很好地介绍了该主题

备选方案 3

如果您想要更高级的东西(如果您的用户可以接受),我会研究向您的应用程序添加脚本(IronPhyton,IronRuby)

于 2009-07-21T12:49:21.653 回答