WebAPI异步Task <IHttpActionResult>传递模型

时间:2019-12-13 20:54:37

标签: c# asp.net-web-api routing asp.net-web-api2

这是我的控制人

public class TutorController : ApiController
{

    [Route("CreateTutor")]
    public async Task<IHttpActionResult> CreateTutor(TutorModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }            

        return Ok();
    }
}

我正在使用Fiddler连接到它

POST http://localhost:12110/api/Tutor/CreateTutor

我已设置原始文件和应用程序/应用程序

我体内有

{
  "Name": "Test"
}

但是我得到这个错误 {     “ Message”:“未找到与请求URI'http://localhost:12110/api/Tutor/CreateTutor'相匹配的HTTP资源。”,     “ MessageDetail”:“在与请求匹配的控制器'Tutor'上未找到任何动作。” }

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

API控制器中的每个方法都必须具有属性才能确定

您缺少方法中的action属性,例如。下面

[Route("api/[controller]")]
[ApiController]
public class TutorController : ApiController
{

    [HttpPost]
    [Route("CreateTutor")]
    public async Task<IHttpActionResult> CreateTutor(TutorModel model)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }            

        return Ok();
    }
}

在MS文档中了解更多信息: https://docs.microsoft.com/en-US/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2#http-methods