2011-07-05 23 views
2

我正在创建一个网站,该网站将提供一个选项,通过电子邮件向用户发送在网站最终页面上动态,代码隐藏,计算驱动内容的副本。现在发送电子邮件时,我会再次从模型对象中获取计算值,当用户单击按钮时,手动编写所有HTML标签,并将模型数据粘贴到需要的位置。asp.net获取呈现的HTML副本

我的问题是:有没有更简单的方法将网站输出复制到html格式的电子邮件?我目前手动编写HTML电子邮件,并希望能够获取呈现的HTML副本,并且可以从那里修改它。

回答

0

最简单的方法(至少对我来说)HTML是实际创建一个网页,做一切你想要它做,然后使用System.Net.WebClientSystem.Net.HttpWebRequest刮。

所以你有Page1.aspx它允许一个人选择一些东西,并提交一个表格,然后你得到Email1.aspx这是最终的输出。当提交Page1.aspx时,请使用WebClient下载Email1.aspx的内容,如果需要,可能会传递querystring或某些cookie。用户从不“看到”Email1.aspx(当然电子邮件除外),它只是在幕后使用。

这种方法的优点是您可以测试HTML输出而无需通过SMTP环路跳转。在Email1.aspx页面中,如果您需要修改HTML,则还可以覆盖OnRender()方法(我认为这是一种方法,可能有不同的名称)。或者你可以在下载之后修改HTML。如果您正在执行相同的基本HTML修改(您可以子类System.Web.UI.Page),请实施您的自定义渲染,然后让所有电子邮件从您的新子类继承。

需要记住的一件事是,沿着这条路线创建一个与用户请求完全分离的HTTP请求,因此会话和Cookie等内容不会自动传递,您需要找到一种方法那是你自己的。

0

您可以访问的最后准备渲染的使用asp.net

Response.WriteFile("filename"); 

方法