У меня есть контроллер веб-API, FAIRController
. На странице я хочу отправить ему запрос ajax. Но если я установлю URL на @Url.RouteUrl("DefaultApi", new { controller = "FAIR", action = "KittedDate" })
, я получу ноль. Однако, если я изменю его на @Url.HttpRouteUrl("DefaultApi", new { controller = "FAIR", action = "KittedDate" })
, я получу правильный URL-адрес, например, /Api/FAIR/KittedDate
.
Так что я думаю, что на вопрос «почему один работает, а не другой» отвечает «это http маршрут, а не просто маршрут».
Но это только поднимает вопрос: что такое не-http маршрут? Разве вы не можете получить доступ только к какому-либо маршруту, определенному с помощью MVC, используя HTTP-запросы? Он будет работать на HTTP-сервере, который прослушивает HTTP-трафик, и только понимая HTTP-трафик, он узнает что-нибудь о контроллере и действии.