Ответ 1
да, вам нужно создать обработчик, который создаст весь контекст, необходимый для страницы, на котором будет выполняться полный жизненный цикл всей страницы, и более рекомендуется, когда вы хотите получить что-то вроде пользовательского элемента управления или что-то большее.
public void ProcessRequest(HttpContext context)
{
context.Response.Write(RenderView("~/_controltemplates/15/myDir/Templates/myUC.ascx"));
}
public static string RenderView(string path)
{
try
{
Page pageHolder = new Page();
UserControl viewControl = (UserControl)pageHolder.LoadControl(path);
pageHolder.Controls.Add(viewControl);
StringWriter result = new StringWriter();
Log.Application.Debug(LOGPREFIX + "RenderView before Execute");
HttpContext.Current.Server.Execute(pageHolder, result, true);
return result.ToString();
}
catch (Exception ex)
{
Log.Application.ErrorException(LOGPREFIX, ex);
throw;
}
}
но я думаю, что это не то, что вам нужно, вместо этого я бы посоветовал вам создать сущность (класс) для обработки этой функции вставки, которая не потребует никакого httpContext и запускает ее из простого обработчика.
другое решение, которое вам может понадобиться, поскольку, возможно, вам нужна вся информация о обратной почте, но вы не хотите делать полную обратную передачу, это использовать AjaxPanel или даже очистить ответ и отправить "ОК".