2012-06-21 1 views
0

Я использую VS2010, C# для разработки своего веб-приложения ASP.NET, я создал страницу динамически (используя несколько элементов на стороне сервера и HTML на странице). Теперь я собираюсь отправить свою страницу по электронной почте, я должен иметь ее содержимое как HTML, как я могу получить свой HTML-код страницы? конечно, у меня есть DIV (runat = ....), который содержит части, которые нужно отправить, как я могу получить его содержимое HTML? innerHTML дает мне не буквальную ошибку, каковы мои варианты? Я хочу, чтобы иметь окончательный отображаемое содержимое моего DIVнайти DIV HTML в ASP.NET

благодаря

ответ

3

Вы можете вынести управление WebForms в коде, используя что-то вроде следующего:

var control = new Control(); 
StringBuilder b = new StringBuilder(); 
HtmlTextWriter writer = new HtmlTextWriter(new System.IO.StringWriter(b)); 
control.RenderControl(writer); 
return b.ToString(); 

ПРИМЕЧАНИЕ: есть и другой способ, чтобы сделать вся страница, которая может быть немного легче, чем то, что уже было предложено:

var writer = new StringWriter(); 
HttpContext.Current.Server.Execute(url, writer); 
string output = writer.GetStringBuilder().ToString(); 
+0

спасибо, как я мог отобразить HTML моего DIV? –

+1

хорошо, если ваш div имеет тег 'runat =" server, который означает, что вы можете получить к нему доступ в своем коде ... так что просто замените объект 'var control' в моем коде на ваш DIV –

+0

. У меня есть следующая ошибка : Элемент управления «imgFa» типа «ImageButton» должен быть помещен внутри тега формы с сервером runat =. –

1

Вы можете попробовать просто загрузку страницы в виде строки, используя WebClient.

var wc = new WebClient(); 
string url = Request.Url.AbsoluteUri; // for the current page, otherwise set the URL 
string html = wc.DownloadString(url); 

Не уверен, если вы знаете, но HTML письмо является сложным вопросом (почтовые клиенты, как очень дерьмовых браузеры, вы можете использовать только базовую разметку и CSS). Я бы рекомендовал проверить HTML Email Boilerplate за некоторые советы и рекомендации по этому вопросу.

+0

спасибо, тогда как я могу получить контент DIV? –

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