Я работаю над сайтом, который является частично статическим содержанием и частично MVC. Корнем сайта является index.html, и у меня есть все контроллеры, явно направленные и все проигнорированные файлы HTML. Однако при ударе корня веб-сайта он пытается направить его. Как я могу сказать механизму маршрута игнорировать корень сайта? www.mysite.com не должен быть направлен, но вместо этого перейти к index.html. Вот моя настройка маршрутизации:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("*.html|js|css|gif|jpg|jpeg|png|swf");
routes.MapRoute(
"vendor_signup","{vendor}/signup/{action}/",
new { controller = "Signup", action = "Index", vendor=UrlParameter.Optional} // Parameter defaults
);
routes.MapRoute(
"signup","signup/{action}/",
new { controller = "Signup", action = "Index", vendor=Vendors.PCICentral} // Parameter defaults
);
//more routes below
Один из маршрутов все еще находился в {}, что заставило его попытаться проанализировать корень.
Я полагаю, вы имеете в виду, что когда кто-то обращается к /
на вашем веб-сайте, вы не хотите использовать MVC, но показываете статическую страницу. Для этого вам нужно указать MVC игнорировать этот маршрут и позволить веб-формам обрабатывать его. Затем веб-формы должны показать вам /index.html
при получении запроса /
.
Просто добавьте это до того, как ваши маршруты должны работать:
routes.IgnoreRoute("");