Может ли ASCX или ASP.net файлы могут быть сохранены как HTML-файлы

#asp.net #html #ascx

#asp.net #HTML #ascx

Вопрос:

Может ли ASCX или ASP.net файлы могут быть сохранены как HTML-файлы? если да, то как?

Комментарии:

1. С какой целью?… Из вашего браузера вы можете сохранить выходной HTML, но что это даст вам?

2. Чего именно вы пытаетесь достичь? Есть ли у вас HTML-разметка в файле ASCX, которую вам нужно извлечь на статическую HTML-страницу? Вы пытаетесь сохранить отображаемый вывод из динамического содержимого в файле ASCX?

Ответ №1:

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

 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-страницы, если требуется 🙂

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

HTH. D

Ответ №2:

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