Если быть честным, то наибольшее препятствие будет создавать маршруты и следить за тем, чтобы они не мешали маршрутам, уже находящимся в системе. После того, как вы получите эту работу, все будет легко, как пирог.
Первое, что вам понадобится, это HttpModule, который будет вставлен в файл web.config под. Этот модуль будет использоваться для регистрации и пользовательских ViewEngines или Routes, которые вы хотите зарегистрировать. Вы делаете это так же, как в Global.asax, но вместо того, чтобы помещать их в Application_Start, вы помещаете их в статический конструктор HttpModule. Это значит, что они загружаются только как Application_Start.
Сделав это, вы создали модуль, который легко переносится и не требует, чтобы имплицитор модифицировал свой код Global.asax, чтобы заставить ваши вещи работать.
Вторая вещь, которую вы, вероятно, захотите сделать, - создать пользовательскую конфигурацию в файле web.config, чтобы задать материал, например, корневой путь вашего приложения. Это будет добавлено к маршруту, когда вы настроите его в HttpModule. Также вы можете использовать это для хранения информации о настройке, которая не подходит для базы данных.
Последнее, но не необходимо, так это то, что вы можете создать пользовательский ViewEngine, который знает и понимает вашу структуру папок. Это необходимо, только если вы хотите сохранить представления по другому пути, чем представления по умолчанию, чтобы минимизировать конфликты.
Это очень плохо для SEO, потому что каждый домен рассматриваются как новый веб-сайт. –
Если ему действительно нужно вложить одно приложение ASP.NET MVC в другое, что может привести к действительно глубоким путям и AFAIK, поисковым системам тоже не понравятся. :) – hangy
На самом деле это неправда. Google изменил свой алгоритм, чтобы рассматривать все поддомены как один и тот же сайт. – Keltex