Я надеюсь делать что-то подобное этому сообщению:
Как скрыть название контроллера в URL?
только без любого вида идентификатора.
Сервер выполняет IIS 6, и страницы уже обнаруживаются без расширений, таким образом, это не подстановочная проблема.
Я надеюсь поражать http://website.com/action-name
У меня есть работа http://website.com/controller/action-name
Я предполагаю, что это - просто простое изменение маршрутизации, которое я так или иначе проваливаю. Мое текущее правило маршрутизации:
routes.MapRoute(
"RouteName",
"{action}",
new { controller = "Home", action = "Index" }
);
Расположено ли ваше новое правило маршрутизации выше правила маршрутизации по умолчанию {controller, action, id}
, чтобы оно имело возможность соответствовать первому?
Проблема в том, что ваш маршрут по умолчанию, вероятно, все еще существует, поэтому он сначала сопоставляет его, а остальные ожидаемые входные параметры по умолчанию. Основываясь на вашем комментарии о том, что контроллер / действие
работает, я думаю, что вы не удаляли его или оно появляется первым. Можете ли вы опубликовать свои RegisterRoutes
?
Попробуйте сделать маршрут, который вы определили, самым первым маршрутом, и он должен соответствовать почти всему, что вы по нему проходите.
РЕДАКТИРОВАТЬ: Добавил, как должны выглядеть ваши RegisterRoutes
:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// This will match anything so if you have something very specific with hard coded
// values or more items that will need to be match add them here above but do not
// add defaulted values so it can still fall through to this.
routes.MapRoute(
"RouteName",
"{action}",
new { controller = "Home", action = "Index" });
}