【问题标题】:How do I retrieve HTML dynamically generated from an aspx page?如何检索从 aspx 页面动态生成的 HTML?
【发布时间】:2011-03-22 08:20:22
【问题描述】:

具体来说,这就是我正在做的事情,这就是我想要做的事情:

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

    markup += "<fieldset>"

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

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

谢谢!

【问题讨论】:

  • Ryan,我知道这不是您问题的答案,但我建议使用 StringBulder 而不是字符串值的串联。 dim sb as new StringBulder sb.append("
    ") sb.append("") '等等 return sb.ToString 原因是StringBuilder比较快。
  • 一开始我确实是这样做的,但是觉得这样看比较混乱。对于网页的大小(可能是 40-50 行 HTML),速度并不是什么大问题……但我很感谢您的建议!

标签: asp.net html vb.net


【解决方案1】:
WebClient client = new WebClient ();
string html = client.DownloadString("http://domain.com/emailtemplate.aspx?id=1");

【讨论】:

  • 这提取了直接的 ASP 代码...没有经过 HTML 生成部分。
  • 哇。这是令人惊讶的。我得看看那个。我本以为 Web 服务器会将其视为普通的 http 请求。
【解决方案2】:

如果您可以访问数据库,则可以随时将 html 放在那里,否则我通过创建带有 [replace] 部分的 mailtemplate.html 文件解决了这个问题,因此您只需将文件读入字符串对象进行替换,然后将其发送出去。

如果需要,您可以通过这种方式维护多个模板。我主要将它用作我的系统需要发送的电子邮件的包装器,因此我的模板中有一个 [body] 标记,该标记将替换为我需要发送的任何消息。我还使用此方法将多个文件包装到单个电子邮件输出中。

【讨论】:

    【解决方案3】:

    我假设您想动态构建 html... 一个(当然是最可维护的)解决方案是构建基于模板的系统。

    从技术上讲,您将 html(例如电子邮件截图)保存在一个目录中,从您的 ASP.NET 程序中读取模板,填写详细信息并将 html 邮件发送给用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 2012-07-08
      • 2012-07-04
      相关资源
      最近更新 更多