Я пытаюсь правильно спроектировать DELETE-запрос http в своем веб-приложении ASP.Правильно составление маршрутов для asp.net web api
Я следующий маршрут определяется:
public const string ControllerOnly = "ApiControllerOnly";
public const string ControllerAndId = "ApiControllerAndIntegerId";
private const string ControllerAction = "ApiControllerAction";
public static void Register(HttpConfiguration config)
{
var routes = config.Routes;
// api/projects
routes.MapHttpRoute(
name: ControllerOnly,
routeTemplate: "api/{controller}"
);
//api/projects/1
routes.MapHttpRoute(
name: ControllerAndId,
routeTemplate: "api/{controller}/{id}",
defaults: null,
constraints: new { id = @"^\d+$" } // id must be all digits
);
routes.MapHttpRoute(
name: ControllerAction,
routeTemplate: "api/{controller}/{action}"
);
}
Я ожидаю его ударить следующие действия:
public HttpResponseMessage Delete(int i)
{
//content remove for brevity
return new HttpResponseMessage(HttpStatusCode.NoContent);
}
В стельку я пытаюсь проверить с помощью следующих действий: DELETE http://localhost:port/api/controller/1
, но этот метод никогда не попадает. Вместо этого следующий метод попал:
public HttpResponseMessage Delete()
{
//content remove for brevity
return new HttpResponseMessage(HttpStatusCode.NoContent);
}
У меня есть общее представление о маршрутизации, но не следует, что единственный путь, я определил, гарантировал, что предыдущий тест прошел успешно? Обратите внимание, что у меня нет никаких проблем с GET и POST глаголов
Любая помощь оценили
Есть ли у вас какие-либо другие маршруты? Если да, добавьте их в свой пост. – Complexity
Да, я обычно это делаю, но, столкнувшись с этой проблемой, я прокомментировал их, чтобы сначала сделать эту работу. thx – user3320502
И почему в вашем маршруте нет действий? Частная причина? – Complexity