我正在制作一个ASP.net核心2.0 Web API,并在我的控制器中有一个名为
的方法[HttpPost("Create")]
public void Create()
{
// var d = employee;
}
HttpPost
是否与[Route]
属性相同,还是我需要两者?
答案 0 :(得分:1)
对于Asp.Net Core Web API,您不需要两者。
它与Route
的行为相同,是建议的方法。将MVC与视图结合使用时,您可以同时使用Route
和Http{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
。这限制了行动的可能反应。