HTTP属性与路由相同 - ASP.Net Core API?

时间:2018-05-22 22:58:48

标签: c# asp.net-core asp.net-core-2.0 asp.net-core-webapi asp.net-core-routing

我正在制作一个ASP.net核心2.0 Web API,并在我的控制器中有一个名为

的方法
[HttpPost("Create")]
public void Create()
{
    //  var d = employee;
}

HttpPost是否与[Route]属性相同,还是我需要两者?

1 个答案:

答案 0 :(得分:1)

对于Asp.Net Core Web API,您不需要两者。

它与Route的行为相同,是建议的方法。将MVC与视图结合使用时,您可以同时使用RouteHttp{Verb}

文件说明......

  

在构建REST API时,您很少需要在操作方法上使用[Route(...)]。最好使用更具体的Http*Verb*Attributes来准确了解您的API支持的内容。 REST API的客户端应该知道哪些路径和HTTP谓词映射到特定的逻辑操作。

参考Routing to Controller Actions in ASP.NET Core

我还建议让您的操作返回IActionResult以允许从操作返回正确的HTTP谓词。

[HttpPost("Create")]
public IActionResult Create() {
    //  var d = employee;
    return Ok();
}
除非抛出异常,否则

void操作始终返回200 OK。这限制了行动的可能反应。