[英]asp.net obtain copy of rendered HTML
我正在創建一個網站,該網站將為 email 用戶提供網站最后一頁上動態、代碼隱藏、計算驅動內容的副本。 To send an email as of now I obtain the calculation values from the model object again when the user clicks the button, writing all HTML tags by hand, sticking the model data in where needed.
我的問題是:有沒有更簡單的方法可以將網站 output 復制到 html 格式的 email? 我目前手動編寫 HTML email 並希望能夠獲得渲染的 HTML 的副本,並可能從那里修改它。
您可以使用 asp.net 訪問最終可渲染的 html
Response.WriteFile("filename");
方法
最簡單的方法(至少對我來說)是實際創建一個網頁,它可以執行您希望它執行的所有操作,然后使用System.Net.WebClient
或System.Net.HttpWebRequest
抓取它。
所以你有Page1.aspx
,它允許一個人select 一些東西並提交一個表格,然后你有Email1.aspx
,它是最終的output。 提交Page1.aspx
時,使用WebClient
下載Email1.aspx
的內容,如果需要,可能會傳遞一個查詢字符串或一些 cookies。 用戶永遠不會“看到” Email1.aspx
(當然除了在他們的 email 中),它只是在幕后使用。
這種方法的優點是您可以測試 HTML output 而無需跳過 SMTP 箍。 在Email1.aspx
頁面中,如果您需要修改 HTML,您還可以覆蓋OnRender()
方法(我認為這是一個,可能有不同的名稱)。 或者您可以在下載后修改 HTML。 如果您正在執行相同的基本 HTML 修改,您可以System.Web.UI.Page
,實現您的自定義呈現,然后讓所有電子郵件從您的新子類繼承。
重要的是要記住,沿着這條路線走會創建一個 HTTP 請求,它與用戶的請求完全分開,所以像 session 和 Z55E7DD3016CE4AC57B9A0F56AF12F7C2 這樣的事情你需要自己找到一種自動傳遞的方式, .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.