По некоторым причинам мне нужен .NET MVC 4, чтобы не удалять "Индекс" автоматически из URL-адреса. В основном мне нужно преобразовать

С http: //example.com/ на http: //example.com/Index

Или

Http: //example.com/foo на http: //example.com/foo/Index

Проблема в том, что @ URL.Action ("Index", "Foo") просто выводит / Foo, он мне нужен для вывода Foo / Index.

Любая помощь будет принята с благодарностью!

2
Alex 2 Апр 2013 в 13:28

1 ответ

Лучший ответ

Вы должны просто удалить действие по умолчанию из сопоставления маршрутов.

Итак, вместо этого:

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

Просто уберите action = "Index":

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", id = UrlParameter.Optional }
);
3
Nick Butler 2 Апр 2013 в 13:46