我有一个看起来像这样的控制器
[HttpGet]
[ActionName("Ping")]
public bool Ping() { return true; }
[HttpPost]
[ActionName("Test")]
public string Test([FromBody] Testing form)
{
return form.Email + " " + form.Password;
}
并且在运行帮助页面时显示:
获取 api/测试
POST api/测试
路由是模板附带的默认路由,因此不确定为什么即使在放置注释“ActionName”之后它也没有选择正确的名称。
任何帮助将不胜感激。
==================================================== ===============
回答:正如David L.所建议的那样,问题出在路由上。我阅读了他建议的链接并添加了一个新的路由 API,其中包含“ACTION”,它看起来像这样:
config.Routes.MapHttpRoute(
name: "TestApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
有了这个,它现在可以使用正确的 Annotation 名称显示正确的 API。