Asp Маршрутизация .net MVC/Web Api: нужно маршрутизировать немного по-другому

Я настроил проект веб-API asp.net (он работает точно так же, как проект Mvc) с использованием маршрутизации - следовательно, у меня есть следующее

routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

] Итак, все работает именно так, как я хочу.... Я ввожу api/Products/15, и он поступает в мой контроллер продуктов, передавая в качестве идентификатора 15.

Отлично.

У меня также есть еще 2 контроллера, 1 называется UploadsController и 1 называется DownloadsController.Они предлагают загрузку и загрузку (GET / PUT и т. д.)

Теперь я не хочу, чтобы они подхватывались исходным правилом (см. выше)

Но я хотел бы использовать эти 2 URL-адреса для доступа к ним.

/api/Транспорт/Загрузки/15 /api/Transport/Downloads/15

Я передал 15 в качестве идентификатора, вероятно, не произойдет в реальной жизни... просто это хорошо для демонстрации :-)

Теперь транспорта не существует, поэтому я мог бы сделать следующее

routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/Transports/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

, которое, я считаю, работает...

, но проблема в том, что если я сделаю

/api/Uploads/15 - это также будет поймано исходным правилом, которое я не хочу ..

Я хочу, чтобы к контроллеру Uploads и DOwnloads обращались через фейковые "Транспорты" а не без Транспортов

Может кто поможет?

Заранее спасибо

6
задан Martin 20 June 2012 в 14:34
поделиться