[英]Web API 2 default routing scheme
我突然想到了这个问题。
在Startup.cs
我有:
HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
app.UseWebApi(config);
当我有一个这样的方法:
[RoutePrefix("api/Order")]
public class OrderController : ApiController
{
// don't use any attribute here
public IHttpActionResult HelloWorld()
{
...
return Ok();
}
}
HelloWorld()
吗? GET
还是POST
或任何其他动作? 您可以访问到HttpWorld()
使用GET如果重命名方法GetHelloWorld()
POST重命名为PostHelloWorld()
。
但是我更喜欢使用[HttpGet]
, [HttpPost]
,...属性,即使我的操作方法名称中具有“ Get”或“ Post”字符,也可以避免可能的错误。
更新
经过一些测试,我意识到关于此的无法调用HelloWorld的评论是不正确的。 的确,如果您对http://<YourProjectUrl>/order
进行POST调用,则可以调用HelloWorld()方法。
因此,默认方法为POST,并且由于您尚未为操作方法配置任何Route(考虑到RoutePrefix只是一个前缀,因此需要考虑Route属性),它将获得您的控制器名称,而无需“控制器”(OrderController->订单)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.