如何使用ServiceStack for C#正确创建POST请求

时间:2017-09-19 15:29:08

标签: c# rest asp.net-core servicestack

我有一个包含以下位的API。它应该接收Person对象。

[HttpPost]
public IActionResult Post(Person person)
{
    ...
}

我也有此API的消费者:

IRestClient restClient = new JsonServiceClient("http://localhost:12345")
{
    Credentials = CredentialCache.DefaultCredentials
};

var person= new Person
{
    Name = "B1"
};

restClient.Post<HttpWebResponse>("my-route", person);

当我发布person时,我可以追踪到客户端的最后一行,看起来一切都井然有序。

我在API中成功捕获了请求 - 但Name的{​​{1}}现在是person,以及他可能拥有的任何其他属性。

我在这里做错了什么?我在哪里可以找到提示?

1 个答案:

答案 0 :(得分:2)

尝试使用[FromBody]参数绑定属性

[HttpPost]
public IActionResult Post([FromBody]Person person) {
    //...
}

还要确保模型的公开属性是公共属性而不是字段。

public class Person {
    public string Name { get; set; }
    //...other public properties
}