у меня есть контроллер, который выглядит, как этотWebAPI Помощь страница показывает различные имена, чем имена контроллеров
[HttpGet]
[ActionName("Ping")]
public bool Ping() { return true; }
[HttpPost]
[ActionName("Test")]
public string Test([FromBody] Testing form)
{
return form.Email + " " + form.Password;
}
и при запуске страницы справки показывает, что это:
GET апи/Test
POST апи/Тест
Маршрутизация по умолчанию соответствует шаблону, поэтому не уверен, почему он не выбирает правильные имена даже после размещения аннотации «ActionName».
Любая помощь будет по-настоящему оценена.
================================================================================================================================== ===================
ОТВЕТ: Как предложил Дэвид Л., проблема была в маршрутизации. Я прочитал его предложили ссылку и добавлен новый API маршрутизации, который содержал «действие» на него, и это выглядит следующим образом:
config.Routes.MapHttpRoute(
name: "TestApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
С этим актуалистами отображает соответствующий API, используя правильное имя аннотаций.
Я использую маршрутизацию по умолчанию (это означает, что я не изменил тот, который поставляется с шаблоном). Это причина того, что он не работает? Если да, то знаете ли вы, что такое новая маршрутизация? Постскриптум Я сейчас читаю вашу ссылку - большое спасибо –
Чтобы уточнить, WebAPI использует маршрутизацию RESTful, что означает, что он идентифицирует ваши имена методов по их атрибуту REST. Вы должны переименовать Ping для Get и Test to Post. Это согласуется с маршрутизацией, поскольку оно сопоставляется с ключевым словом REST. –
Фактически, добавив новый Маршрут, который имеет {действие} как часть его, он теперь показывает правильное имя «Имя_действия». На самом деле это показывает двойной, но я думаю, мне просто нужно читать дальше: -) Еще раз спасибо. –