我正在编写发送电子邮件(如邮件合并)的WinForms应用程序。在WinForms应用程序中编译ASPX
我想使用ASP.Net的渲染引擎来呈现邮件的HTML正文。
在没有整个ASP.Net运行时,获取单个ASPX页面的渲染输出的最简单方法是什么?
为了让事情变得更加困难,我宁愿在运行时编译ASPX,以便在不重建应用程序的情况下修改它。但是,这不是要求;如果太难了,我会放弃它。
我正在编写发送电子邮件(如邮件合并)的WinForms应用程序。在WinForms应用程序中编译ASPX
我想使用ASP.Net的渲染引擎来呈现邮件的HTML正文。
在没有整个ASP.Net运行时,获取单个ASPX页面的渲染输出的最简单方法是什么?
为了让事情变得更加困难,我宁愿在运行时编译ASPX,以便在不重建应用程序的情况下修改它。但是,这不是要求;如果太难了,我会放弃它。
Rick Strahl发布了一篇文章如何在此位置执行此操作:http://www.west-wind.com/presentations/aspnetruntime/aspnetruntime.asp。我知道有一种方法可以调用一些内部的.NET Framework方法,但我不记得它们是什么东西。
您可能需要考虑使用像NVelocity这样的模板库。以这种方式使用WebForms渲染引擎有点矫枉过正,并且充其量也是骇人听闻。
顺便说一句:请记住,电子邮件中的HTML很糟糕。即使是最基本的CSS也被大多数电子邮件客户端忽略。如果你想要我的建议,KISS,并保存你的理智:如果你要自动化电子邮件,只发送纯文本。
我们也使用ASPX处理纯文本电子邮件(不是来自胖客户端)。工作得很好,很容易使动态:)使用这种方法的另一个原因是很容易将ASPX交给设计人员,让他们把它放在服务器控件周围。通过这种方式,您不必花费时间来布局布局,而只需使用动态数据即可。 – 2009-10-29 04:50:38
这不完全相同;其他问题是通过HTTP提供任意页面或在ASP.Net中运行。 – SLaks 2009-10-29 02:29:09
通过渲染你的意思是用户类型的电子邮件你给它的HTML预览? – TheVillageIdiot 2009-10-29 03:00:13
不;我的意思是将带有嵌入代码的ASPX渲染为可以通过电子邮件发送的字符串。我不需要在屏幕上实际渲染HTML。 – SLaks 2009-10-29 03:06:52