繁体   English   中英

Web API 2默认路由方案

[英]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();
    }
}

  1. 可以访问HelloWorld()吗?
  2. 应该发送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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM