Как использовать 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 решил мою проблему