在Web API 2中以异步方式传递字符串作为参数时,找不到控制器终结点

本文关键字:参数 找不到 结点 控制器 字符串 API Web 方式传 异步 | 更新日期: 2023-09-27 18:29:12

控制器的代码

[Authorize]
[HttpPut]
[Route("TopHandler/{studentId}")]
public async Task<HttpResponseMessage> CreateClass(string studentId, String projectId)
{
    var response = await Task.Run(() =>
    {
        //  Some Code here
    });
    return response;
}

控制器调用的代码

 await VML.Client.PutAsJsonAsync("TopHandler/" + studentId, projectId);

不幸的是,请求找不到这个终点,它给出404我正在传递一个字符串作为参数。这里可能出了什么问题?

在Web API 2中以异步方式传递字符串作为参数时,找不到控制器终结点

我的理解是,当您调用PutAsJsonAsync时,参数会转换为JSON,并在请求的BODY中发送。

您应该将签名更改为:

[Route("TopHandler/{studentId}")]
public async Task<HttpResponseMessage> CreateClass([FromBody]string JSON)