2011-07-05 22 views
2

我正在創建一個網站,該網站將提供一個選項,通過電子郵件向用戶發送在網站最終頁面上動態,代碼隱藏,計算驅動內容的副本。現在發送電子郵件時,我會再次從模型對象中獲取計算值,當用戶單擊按鈕時,手動編寫所有HTML標籤,並將模型數據粘貼到需要的位置。asp.net獲取呈現的HTML副本

我的問題是:有沒有更簡單的方法將網站輸出複製到html格式的電子郵件?我目前手動編寫HTML電子郵件,並希望能夠獲取呈現的HTML副本,並且可以從那裏修改它。

回答

0

最簡單的方法(至少對我來說)HTML是實際創建一個網頁,做一切你想要它做,然後使用System.Net.WebClientSystem.Net.HttpWebRequest刮。

所以你有Page1.aspx它允許一個人選擇一些東西,並提交一個表格,然後你得到Email1.aspx這是最終的輸出。當提交Page1.aspx時,請使用WebClient下載Email1.aspx的內容,如果需要,可能會傳遞querystring或某些cookie。用戶從不「看到」Email1.aspx(當然電子郵件除外),它只是在幕後使用。

這種方法的優點是您可以測試HTML輸出而無需通過SMTP環路跳轉。在Email1.aspx頁面中,如果您需要修改HTML,則還可以覆蓋OnRender()方法(我認爲這是一種方法,可能有不同的名稱)。或者你可以在下載之後修改HTML。如果您正在執行相同的基本HTML修改(您可以子類System.Web.UI.Page),請實施您的自定義渲染,然後讓所有電子郵件從您的新子類繼承。

需要記住的一件事是,沿着這條路線創建一個與用戶請求完全分離的HTTP請求,因此會話和Cookie等內容不會自動傳遞,您需要找到一種方法那是你自己的。

0

您可以訪問的最後準備渲染的使用asp.net

Response.WriteFile("filename"); 

方法