Этот маршрут отображает все URL одного сегмента в метод detail контроллера сделок и передает ему один строковый аргумент dealName:
routes.MapRoute(
null,
"{dealName}",
new { controller = "deals", action = "detail" }
);
Но, как сказал AdamD, вы должны зарегистрировать этот маршрут как последний маршрут в вашей настройке, потому что он будет перехватывать все URL, которые имеют только один сегмент.
При таком подходе вы должны искать свою сделку по имени, что может быть неприемлемым. Так много приложений используют гибридный подход и включают в URL имя и идентификатор, например:
domain.com/deals/5-HereComesTheLongName
Затем вы можете использовать такой маршрут, чтобы получить идентификатор и, при желании, имя:
routes.MapRoute(
null,
"{id}-{dealName}",
new {
controller = "deals",
action = "detail",
dealName = UrlParameter.Optional
}
);