Можно ли сохранять файлы ASCX или ASP.net в виде файлов HTML - PullRequest
0 голосов
/ 08 июня 2011

Можно ли сохранять файлы ASCX или ASP.net в виде файлов HTML?если да, то как?

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Вы можете сделать это напрямую с помощью Render метода Page или UserControl.Поскольку метод защищен, вам необходимо создать элемент управления, который также подклассов.Оттуда у вас есть доступ к тому, что вам нужно.

например,

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 страницы, поскольку в противном случае вы не можете быть уверены, что все дочерние элементы управления / события / и т. д. завершены.

1 голос
/ 08 июня 2011

Да, возможно, чтобы получить визуализированный контент пользовательского элемента управления, выполните следующие действия:

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, если это необходимо: -)

Оттуда сохранение этого в файл должно быть довольно простым.

НТН. D

...