2012-06-21 39 views
0

我正在使用VS2010,C#開發我的ASP.NET Web應用程序,我動態地創建了一個頁面(使用頁面上的多個服務器端和HTML控件)。現在我要通過電子郵件發送我的頁面,我應該將其內容作爲HTML,我怎樣才能擁有我的頁面HTML?當然,我有一個DIV(runat = ....),其中包含應該發送的部分,我如何獲得它的HTML內容? innerHTML給我不是字面錯誤,我有什麼選擇?我希望有我的DIV的最終呈現的內容在ASP.NET中查找DIV HTML

感謝

回答

3

您可以使用類似下面的渲染代碼的Web表單控件:

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(); 
+0

謝謝,我怎樣才能呈現我的DIV的HTML? –

+1

以及如果你的div有一個'runat =「server」'標籤,這意味着你可以在你的代碼隱藏中訪問它...所以只需用你的DIV代替我的代碼中的'var control'對象 –

+0

我有下面的錯誤:類型'ImageButton'的控件'imgFa'必須放置在runat = server的表單標籤中。 –

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 Email Boilerplate以獲取關於此的一些提示和最佳實踐。

+0

謝謝,那我怎麼能有我的DIV內容? –