簡體   English   中英

asp.net 獲得渲染的 HTML 的副本

[英]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.WebClientSystem.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM