我正在使用 VS2010、C# 来开发我的 ASP.NET Web 应用程序,我已经动态地创建了一个页面(在页面上使用多个服务器端和 HTML 控件)。现在我要通过电子邮件发送我的页面,我应该将其内容作为 HTML,我怎样才能拥有我的页面 HTML?当然我有一个 DIV (runat=....),其中包含应该发送的部分,我怎样才能得到它的 HTML 内容?innerHTML
给我的不是字面错误,我有什么选择?我想要我的 DIV 的最终渲染内容
谢谢
您可以使用以下代码在代码中呈现 webforms 控件:
var control = new Control();
StringBuilder b = new StringBuilder();
HtmlTextWriter writer = new HtmlTextWriter(new System.IO.StringWriter(b));
control.RenderControl(writer);
return b.ToString();
注意:还有另一种渲染整个页面的方法,它可能比已经提出的方法更容易一些:
var writer = new StringWriter();
HttpContext.Current.Server.Execute(url, writer);
string output = writer.GetStringBuilder().ToString();
您可能想尝试使用WebClient将页面简单地下载为字符串。
var wc = new WebClient();
string url = Request.Url.AbsoluteUri; // for the current page, otherwise set the URL
string html = wc.DownloadString(url);
不确定您是否知道,但 HTML 电子邮件是一个棘手的主题(电子邮件客户端就像非常糟糕的浏览器,您只能使用基本的标记和 CSS)。我建议您查看HTML Email Boilerplate,了解有关这方面的一些提示和最佳实践。