我正在创建一个网站,该网站将提供一个选项,通过电子邮件向用户发送在网站最终页面上动态,代码隐藏,计算驱动内容的副本。现在发送电子邮件时,我会再次从模型对象中获取计算值,当用户单击按钮时,手动编写所有HTML标签,并将模型数据粘贴到需要的位置。asp.net获取呈现的HTML副本
我的问题是:有没有更简单的方法将网站输出复制到html格式的电子邮件?我目前手动编写HTML电子邮件,并希望能够获取呈现的HTML副本,并且可以从那里修改它。
我正在创建一个网站,该网站将提供一个选项,通过电子邮件向用户发送在网站最终页面上动态,代码隐藏,计算驱动内容的副本。现在发送电子邮件时,我会再次从模型对象中获取计算值,当用户单击按钮时,手动编写所有HTML标签,并将模型数据粘贴到需要的位置。asp.net获取呈现的HTML副本
我的问题是:有没有更简单的方法将网站输出复制到html格式的电子邮件?我目前手动编写HTML电子邮件,并希望能够获取呈现的HTML副本,并且可以从那里修改它。
最简单的方法(至少对我来说)HTML是实际创建一个网页,做一切你想要它做,然后使用System.Net.WebClient
或System.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等内容不会自动传递,您需要找到一种方法那是你自己的。
您可以访问的最后准备渲染的使用asp.net
Response.WriteFile("filename");
方法