Я создаю тестовый центр для различных модульных тестов в своей личной библиотеке, и я хотел иметь легкий доступ к тестовому API. Итак, у меня есть две записи в моей конфигурации маршрута: по умолчанию и мой собственный маршрут...
routes.MapRoute(
name:="Default",
url:="{controller} / {Action} / {id}",
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)
routes.MapHttpRoute(
name:="UnitTests",
routeTemplate:="test/{category}/{testname}",
defaults:=New With {.controller = "TestApis", .action = "testme",
.category = "TestCategoryOne", .testname = UrlParameter.Optional}
)
Идея заключалась в том, что всякий раз, когда я хочу сделать вызов моему тестовому API-контроллеру, я просто добавляю URL-адрес с «test/», и он будет знать, что нужно перенаправить его на мой «TestApisController». . . но, похоже, мой маршрут по умолчанию нарушился.
ВОПРОС
Есть ли способ, с помощью которого я могу сопоставить все маршруты, начинающиеся с «test/», с определенным контроллером, в то же время не нарушая мой маршрут по умолчанию?
РЕДАКТИРОВАТЬ
Итак, через некоторое время я понял, что причина, по которой этот метод не работает, не имеет ничего общего с маршрутом. У меня был другой маршрут API по умолчанию, определенный в файле «WebApiConfig», который вызывал некоторые проблемы. Прошу прощения, я все еще перехожу с Webforms на MVC.
MapHttpRoute
не существует в MVC 6? Самое близкое, что я знаю, это добавлениеMicrosoft.AspNet.Mvc.WebApiCompatShim
, которое позволяет вам использоватьroutes.MapWebApiRoute
. В любом случае, почему бы вам не добавить свой маршрут в качестве стандартного маршрута (поскольку вы определяете контроллер и действие) с помощьюroutes.MapRoute
и объявить его перед маршрутом по умолчанию (поскольку тестовый маршрут более специфичен, чем маршрут по умолчанию) ? - person Daniel J.G.   schedule 07.10.2015../test/someCategory/someTestName
перейдет к методуsomeCategory
testController
передачиsomeTestName
параметруid
, поскольку он соответствует первому (по умолчанию) маршруту - person   schedule 08.10.2015