Я не знаю ни одного простого способа сделать это, но есть несколько систем, которые генерируют разметку aspnet на лету, а затем отправляют ее в среду выполнения aspnet из потока памяти ( или аналогичный).
Я думаю, что umbraco использует такую систему, но первоначальный механизм компоновки, вероятно, немного более низкий уровень, чем элемент управления aspnet. Это может быть достигнуто с помощью httpmodule или чего-то еще, что ранее попадало в конвейер запросов.