Как использовать HTTP-глаголы для маршрутизации в классе HttpConfiguration вместо явных имен действий?

У меня есть базовое приложение для самостоятельного размещения asp.net, которое использует класс HttpConfiguration и включает этот маршрут:

config.Routes.MapHttpRoute(
    name: "login",
    routeTemplate: "login",
    defaults: new { controller = "Login", action = "Get" }
);

Я хотел бы определить действия на основе HTTP-глаголов, включенных в запрос, а не указано в URL.

т.е.

curl http://domain/login -X GET

Следует позвонить Get метод на LoginController учебный класс. А также

curl http://domain/login -X POST -H 'Content-Length: 1' -d 'x'

Должен вызывать метод Post 'Post' в классе контроллера. Я смог проверить, работает ли почтовый запрос, если я настрою конфигурацию маршрута на

config.Routes.MapHttpRoute(
    name: "login",
    routeTemplate: "login/{action}",
    defaults: new { controller = "Login", action = "Get" }
);

а потом curl чтобы:

curl http://domain/login/post -X POST -H 'Content-Length: 1' -d 'x'

Но это указывает на глагол post в запросе http и URI (что я предпочел бы не делать).

===== РЕДАКТИРОВАТЬ

Ответ от Леви здесь: /questions/825387/kak-napravit-zaprosyi-get-i-delete-po-odnomu-i-tomu-zhe-url-na-raznyie-metodyi-kontrollera/825392#825392 решил мою проблему

0 ответов

Другие вопросы по тегам