使用Put和curl调用Dotnet核心Aspnet Rest

使用Put和curl调用Dotnet核心Aspnet Rest,rest,curl,asp.net-web-api,asp.net-core,Rest,Curl,Asp.net Web Api,Asp.net Core,如何编写语句来放置Dotnet核心aspnet 1.1 rest方法 我可以让它识别我的整数id,但不能识别我的字符串负载 方法是: [HttpPut("{id}")] public IActionResult Put(int id, string name){... 抄袭自 当我卷曲时: curl -H "Content-Type: application/json" \ -X PUT \ --data '{"Name":"Tva"}' \ localhost:500

如何编写语句来放置Dotnet核心aspnet 1.1 rest方法

我可以让它识别我的整数id,但不能识别我的字符串负载

方法是:

[HttpPut("{id}")]
public IActionResult Put(int id, string name){...
抄袭自

当我卷曲时:

curl -H "Content-Type: application/json" \
    -X PUT \
    --data '{"Name":"Tva"}' \
    localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
    -X PUT \
    --data '"Tva"' \
    localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
    -X PUT \
    --data '{"name": "Tva"}' \
    localhost:5000/api/todo/2
它可以识别URL中的id 2,但不能识别Name参数。相反,该方法将其作为null接收。 web服务器吐出执行操作方法WebApplication.Controllers.TodoController.Put MyWs,参数为2,-ModelState无效

我还尝试设置[FromBody]标记

这样称呼它:

curl -H "Content-Type: multipart/form-data;" \
    -X PUT \
    -F "name=Tva" \
    localhost:5000/api/todo/2/
但后来我得到了415分

我确实对上面的调用和被调用方进行了排列,但没有找到正确的组合。有些东西不见了

小编辑: 'dotnet new'还将创建一个web api项目。我还没有调查我是否以微软认为应该的方式编写了被叫人。 我的问题是有道理的,但将来可能不那么重要。我将回到主题上。

尝试以下方法:

curl -H "Content-Type: application/json" \
    -X PUT \
    --data '{"Name":"Tva"}' \
    localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
    -X PUT \
    --data '"Tva"' \
    localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
    -X PUT \
    --data '{"name": "Tva"}' \
    localhost:5000/api/todo/2
或者尝试使用包装器模型:

public class MyModel
{
    public string Name { get; set; }
}

[HttpPut("{id}")]
public IActionResult Put(int id, [FromBody] MyModel model){...
和卷曲:

curl -H "Content-Type: application/json" \
    -X PUT \
    --data '{"Name":"Tva"}' \
    localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
    -X PUT \
    --data '"Tva"' \
    localhost:5000/api/todo/2
curl -H "Content-Type: application/json" \
    -X PUT \
    --data '{"name": "Tva"}' \
    localhost:5000/api/todo/2