在 Web 中将字符串作为参数传递时找不到控制器端点 API 2 异步放置
Could not find the controller end point when passing a string as a parameter in Web API 2 put as async
控制器代码
[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
我传递一个字符串作为参数。这里可能会出什么问题?
我的理解是,当您调用 PutAsJsonAsync 时,参数会转换为 JSON 并在请求的 BODY 中发送。
我猜您应该将签名更改为:
[Route("TopHandler/{studentId}")]
public async Task<HttpResponseMessage> CreateClass([FromBody]string JSON)
控制器代码
[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 我传递一个字符串作为参数。这里可能会出什么问题?
我的理解是,当您调用 PutAsJsonAsync 时,参数会转换为 JSON 并在请求的 BODY 中发送。
我猜您应该将签名更改为:
[Route("TopHandler/{studentId}")]
public async Task<HttpResponseMessage> CreateClass([FromBody]string JSON)