Чтобы включить Default.aspx
в качестве URL-адреса по умолчанию, вам просто нужно удалить обработку маршрута, чтобы не было универсального маршрута.
По умолчанию все проекты MVC 3 имеют:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Это универсальный маршрут, который будет соответствовать всему , который вы проходите в своем URL.Если вы удалите это, и путь не будет определен, он будет использовать все, что вы настроили в качестве страницы по умолчанию в вашей web.config
.
Чтобы отобразить /site
в Default.aspx
, вам просто нужно добавить специальный маршрут:
routes.MapPageRoute("SitetoDefault", "site", "~/Default.aspx");
Это увидит /site
и направит его на страницу по умолчанию.
Вам нужно быть осторожным при добавлении любых других маршрутов в таблицу маршрутизации.Все они должны иметь определенный контроллер, или вам нужно будет добавить ограничение маршрутизации.Примерно так:
//controller defined
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
//route constraint
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {
controller = "Home",
action = "Index",
id = UrlParameter.Optional
}, // Parameter defaults
new { controller = "^(products)|(account)|(home)$" }
);
Подробнее о создании более сложной маршрутизации: http://www.asp.net/mvc/tutorials/creating-a-custom-route-constraint-cs