2010-07-28 51 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(例如電子郵件截圖),填寫詳細信息併發送給用戶。