2011-07-05 3 views
2

Я создаю веб-сайт, который предложит вам по электронной почте отправить копию динамического содержимого с кодовым разделением на основе итогов на последней странице веб-сайта. Чтобы отправить электронное письмо на данный момент, я снова получаю значения расчета из объекта модели, когда пользователь нажимает кнопку, записывая все теги HTML вручную, вставляя данные модели в случае необходимости.asp.net получить копию визуализированного HTML

Мой вопрос: есть ли более простой способ скопировать вывод веб-сайта в форматированный html-адрес электронной почты? В настоящее время я кодирую HTML-адрес электронной почты вручную и хотел бы просто получить копию отображаемого HTML и, возможно, изменить его оттуда.

ответ

0

Самым простым способом (по крайней мере для меня) это на самом деле создать веб-страницу, которая делает все, что вы хотите сделать, а затем очистить его, используя System.Net.WebClient или System.Net.HttpWebRequest.

Итак, у вас есть Page1.aspx, который позволяет человеку выбрать некоторые вещи и отправить форму, а затем у вас есть Email1.aspx, который является окончательным результатом. Когда Page1.aspx отправлен, используйте WebClient, чтобы загрузить содержимое Email1.aspx, возможно, передав вам запрос или некоторые файлы cookie, если это необходимо. Пользователь никогда «не видит» Email1.aspx (за исключением своего письма, конечно), его просто использовали за кулисами.

Преимущество этого подхода заключается в том, что вы можете протестировать вывод HTML без необходимости перескакивать через обручи SMTP. На странице Email1.aspx вы также можете переопределить метод OnRender() (возможно, это может быть другое имя), если вам нужно изменить HTML. Или вы можете изменить HTML после его загрузки. Если вы выполняете одни и те же основные модификации HTML, вы можете подклассифицировать System.Web.UI.Page, реализовать свой собственный рендеринг и затем наследовать все электронные письма из вашего нового подкласса.

Важно помнить, что спуск по этому маршруту создает HTTP-запрос, который полностью отделен от запроса пользователя, поэтому такие вещи, как сеанс и файлы cookie, не передаются автоматически, вам нужно найти способ сделать это что по своему усмотрению.

0

Вы можете получить доступ окончательных готовые к визуализации HTML с использованием asp.net

Response.WriteFile("filename"); 

метод

Смежные вопросы