/ Контент - это контроллер, представляющий собой просто набор действий. ASP.NET MVC нужно знать, КАКОЕ действие вы хотите выполнить, поэтому, пропуская действие asp.net, mvc не знает, какое действие вернуть, и выдает 404.
Вы можете указать его по умолчанию, добавив маршрут:
например:
routes.MapRoute("ContentDefault", "Content", new {controller = "Content", action = "Index"});
Атрибуты определены следующим образом:
'ContentDefault` : имя маршрута (должно быть уникальным в вашей таблице маршрутизации)
Контент: Сегмент URL (попробуйте изменить его на «Контент / Много / Длиннее / URL», а затем перейдите на http://localhost/Content/Much/Longer/URL, чтобы увидеть, как это работает)
new {controller = .., action = ...} : какой комбо-контроллер / действие нужно выполнить для этого маршрута.
Вы также можете переопределить действие HandleUnknownAction в вашем контроллере:
protected override void HandleUnknownAction(string actionName)
{
return RedirectToAction("index");
}
Да, и, кстати, дополнительный совет о маршрутизации .... если вы добавите что-то к маршруту в фигурных скобках {}, они будут переданы действию в качестве атрибута.
например. / Содержание / Большая / Longer / URL / {страница}
так что URL http://localhost/Content/Much/Longer/Url/999
передаст 999 в ваше действие в качестве атрибута страницы
public ActionResult Index(int Page) { }
Я люблю MVC - никогда не возвращаюсь к WebForms - так должна быть веб-разработка!