Определенно возможно создать экземпляр страницы .aspx и вызывать его на лету, хотя это может быть сопряжено с трудностями в зависимости от того, что вы делаете. Вот основная идея:
Page instance = BuildManager.CreateInstanceFromVirtualPath(
"/myPath/myPage.aspx",
typeof(MyPageCodeBehindType)) as Page;
Предположительно, теперь вы можете позвонить на него instance.ProcessRequest(HttpContext.Current)
и пройти через жизненный цикл страницы. Снова предположительно вы можете проверить instance.IsValid
и посмотреть, сработали ли ваши валидаторы.
Я говорю, вероятно, потому что у меня очень мало опыта с этим. Дайте ему шанс - возможно, проверьте BuildManager класс для некоторых других примеров.
РЕДАКТИРОВАТЬ : Похоже, вы можете сделать это:
UserControl instance = (UserControl)BuildManager.CreateInstanceFromVirtualPath(
"~/Controls/Somefile.ascx", typeof(UserControl));