2010-07-28 54 views
2

具体而言,这是我正在做的,这里是我正在做的事情:如何检索从aspx页面动态生成的HTML?

我正在编写一个ASP.NET页面,其中包含VB代码。当用户点击页面上的按钮时,我会向他们发送一封包含信息和说明的电子邮件。我发送了一个漂亮的,HTML格式的电子邮件,而不是发送纯文本电子邮件。现在,我正在以一种我知道很难维护的方式来做这件事。也就是说,我直接写出所有的html。即

markup += "<fieldset>" 

    markup += "<legend>" 
    markup += "Required Documents" 
    markup += "</legend>" 

...等等。有没有办法创建一个aspx页面(使用vb代码),并将该页面的html发送到电子邮件的正文中?这些信息是动态的,所以这个伪页面在加载事件中需要逻辑来正确地格式化html。

谢谢!

+0

瑞安,我知道这不是你的问题的答案,但我会建议使用StringBulder而不是串联字符串值。 昏暗某人作为新StringBulder sb.append( “

”) sb.append(“ ”) “等 回报sb.ToString 原因是StringBuilder的速度更快。 – Anvar 2010-07-28 19:10:03

+0

我其实一开始就是这么做的,但是觉得看起来比较混乱。对于网页的大小(可能是40-50行的HTML)速度不是太大的问题......但我很欣赏你的建议! – rybosome 2010-07-28 19:32:33

回答

1
WebClient client = new WebClient(); 
string html = client.DownloadString("http://domain.com/emailtemplate.aspx?id=1"); 
+0

这拉直ASP代码...没有通过HTML生成部分。 – rybosome 2010-07-28 19:29:51

+0

哇。这是令人惊讶的。我将不得不看看这个。我本以为Web服务器会把它当作普通的http请求来对待。 – jessegavin 2010-07-28 22:14:55

0

如果你访问一个数据库,你可以总是有下降的HTML,否则,我通过创建[替换]在读取它,所有你需要做的一个部分文件mailtemplate.html解决了这个问题将文件转换为字符串对象,然后将其替换并发送出去。

如果您不得不通过这种方式维护多个模板。我主要用它作为包裹在我的系统需要发送的电子邮件上,所以我的模板中有一个[body]标签,它被替换为我需要发送的任何消息。我也使用这种方法将多个文件封装到一个电子邮件输出中。

0

我假设你想要在即时建立html ...一个(当然最可维护的)解决方案是建立一个基于模板的系统。

从技术上讲,你需要在你的ASP.NET程序的目录中维护你的html(例如电子邮件截图),填写详细信息并发送给用户。