Я сделал похожую вещь, и она работает. У меня есть задание по расписанию, работающее в фоновом режиме для еженедельного генерирования клиентского отчета, мне нужно заполнить строку html, а затем преобразовать ее в файл PDFНиже приведен код для использования пользовательского элемента управления для создания HTML-кода из моего проекта
var p = new Page();
var control = (ClientReportPdfControl)p.LoadControl("~/mycontrolpath.ascx");
control.ClientReportMeta = ClientReportMeta;//my user control custom property
control.Report = CustomerReport;//my user control custom propert
control.SetupControls();// my user control custom method, setup control e.g. repeater databind etc
p.Controls.Add(control);
StringBuilder myStringBuilder = new StringBuilder();
TextWriter myTextWriter = new StringWriter(myStringBuilder);
HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter);
if (control != null && myWriter != null)
control.RenderControl(myWriter);
string html = myTextWriter.ToString();
Чтобы отобразить пользовательский элемент управления, требуется что-то на обычной веб-странице (не могу вспомнить, что это такое, как есть)Прошло довольно много времени), ваша ошибка моя, потому что вы просто бросили своего помощника на страницу, чтобы он не имел этой вещи. В противном случае у вас может быть что-то похожее на мой код для настройки вашего элемента управления, чтобы убедиться в правильности настройки элемента управления