Очевидно, что инфраструктура .net MVC уже обрабатывает статический контент для изображений / css / js и т. Д. Было бы просто расширить его (маршрутизацию?) Для передачи файлов .html через IIS. Это вкупе с чертой переписывания, чтобы сделать более симпатичные URL, должно сработать.
Тем не менее, я бы очень и очень осторожно разрешил создавать пользовательский контент в виде необработанных HTML-загрузок, поскольку вы оставляете очень широкую дверь открытой. В лучшем случае, вы собираетесь наматывать со страницами людей полных спама / порно / рекламы. В худшем случае вы предоставите людям возможность загружать хаки для межсайтовых сценариев и потенциально загружать вредоносный контент, чтобы повредить ваш сайт. Они могут легко взять существующую форму на вашем сайте, жестко запрограммировать в ней множество мусора, извлечь ее со своей домашней страницы и сломать целую кучу вещей.
По крайней мере, вы должны анализировать загруженный контент, чтобы уменьшить его до просто блока контента, а затем оборачивать его в свой собственный и т. Д. Я лично был бы гораздо более склонен просто предоставить пользователям хороший WYSIWYG-редактор редактировать отдельный блок контента - любой редактор, достойный его внимания, должен предоставить вам дезинфекцию относительно того, какие элементы он включает / исключает. Затем сохраните этот фрагмент контента в вашей базе данных / на диске и попросите домашнюю страницу пройти стандартный маршрут контроллера MVC и загрузить этот контент.
Edit - для вас запрос примеров
Вы должны быть в состоянии добавить правило Ignore к вашей маршрутизации - возможно, уже будут примеры этого - взломайте ваш файл Global.asax - вы захотите выполнить вызов к route.IgnoreRoute метод:
routes.IgnoreRoute("UserPages/{*path}");
Следует разрешить IIS обрабатывать все запросы для yourwebsite.com/UserPages/aUser/homepage.html - вы также можете поиграть немного больше с фрагментами / ограничениями подстановочных знаков для более красивых решений