0

VS2010、C#を使用してASP.NET Webアプリを開発し、動的にページを作成しました(ページ上のいくつかのサーバー側とHTMLコントロールを使用)。次に、ページを電子メールで送信します。コンテンツをHTMLにする必要がありますが、ページをHTMLにするにはどうすればよいですか。もちろん、送信する必要のある部分を含むDIV(runat = ....)がありますが、HTMLコンテンツを取得するにはどうすればよいですか?innerHTML文字通りのエラーではありませんが、私の選択肢は何ですか?DIVの最終的なレンダリングコンテンツが欲しい

ありがとう

4

2 に答える 2

3

次のようなものを使用して、コードで 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();
于 2012-06-21T06:01:36.417 に答える
1

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メールボイラープレートを確認することをお勧めします。

于 2012-06-21T06:02:15.350 に答える