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