C# 如何使用ServiceStack for C正确创建POST请求#
我有一个API,其中包含以下内容。它应该接收一个C# 如何使用ServiceStack for C正确创建POST请求#,c#,rest,asp.net-core,
servicestack,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 pe
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);
IRestClient restClient=newjsonserviceclient(“http://localhost:12345")
{
凭据=CredentialCache.DefaultCredentials
};
var person=新的人
{
Name=“B1”
};
restClient.Post(“我的路线”,person);
当我发布个人
时,我可以跟踪到最后一行,即客户端,一切似乎都正常
我在API中成功捕获了请求-但是人员的名称
现在是null
,以及他可能拥有的任何其他属性
我在这里做错了什么?哪里可以找到提示?尝试使用[FromBody]
参数绑定属性
[HttpPost]
public IActionResult Post([FromBody]Person person) {
//...
}
还要确保模型的公开成员是公共属性,而不是字段
public class Person {
public string Name { get; set; }
//...other public properties
}
尝试当场使用[FromBody]
参数绑定属性public IActionResult Post([FromBody]Person)
<代码>[来自正文]
使所有的区别都有所不同。我也发现了原因。我没有提到我的API是一个ASP.NET核心项目,这会有所不同。在普通ASP.NET中,默认情况下假定复杂类型(如Person
)来自主体。这不是ASP.NET内核的情况,因此我犯了错误。非常感谢你为我指明了正确的方向!