Можно ли сохранять файлы ASCX или ASP.net как файлы HTML? если да, то как?
Можно ли сохранять файлы ASCX или ASP.net как файлы HTML
comment
С какой целью?... Из вашего браузера вы можете сохранить выходной html, но что это вам даст?
- person Fosco   schedule 08.06.2011
comment
Чего именно вы пытаетесь достичь? У вас есть HTML-разметка в файле ASCX, которую нужно извлечь в статическую HTML-страницу? Вы пытаетесь сохранить визуализированный вывод из динамического содержимого в файле ASCX?
- person David   schedule 08.06.2011
Ответы (2)
да, это возможно, чтобы получить визуализированный контент пользовательского элемента управления, сделайте следующее:
StringWriter output = new StringWriter();
Page pageHolder = new Page();
UserControl viewControl = (UserControl)pageHolder.LoadControl("path to ascx file");
pageHolder.Controls.Add(viewControl);
HttpContext.Current.Server.Execute(pageHolder, output, true);
string htmlOutput = output.ToString();
Я уверен, что вы можете адаптировать приведенное выше для страницы ASPX, если это необходимо :-)
Оттуда сохранение этого в файл должно быть довольно простым.
ХТН. Д
person
Dave Long
schedule
07.06.2011
Вы можете сделать это напрямую с помощью метода Render
объекта Page
или UserControl
. Поскольку метод защищен, вам также потребуется создать элемент управления, который является подклассом. Оттуда у вас есть доступ, чтобы делать все, что вам нужно.
e.g.
public partial class MyPage: Page
{
public string GetPageContents()
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
using (HtmlTextWriter writer = new HtmlTextWriter(sw))
{
Render(writer);
}
return sb.ToString();
}
}
Вы, вероятно, не захотите вызывать это в любое время до события PreRenderComplete
страницы, поскольку в противном случае вы не можете быть уверены, что все дочерние элементы управления/события/и т. д. завершены.
person
Jamie Treworgy
schedule
07.06.2011