【发布时间】:2021-03-16 04:09:45
【问题描述】:
我使用这一行来使用 API post 方法
var postTask = client.PostAsJsonAsync("AgregarNegocio", new StringContent(JsonConvert.SerializeObject(model).ToString(), Encoding.UTF8, "application/json"));
但是当 API 方法被命中时
public IActionResult AgregarNegocio([FromBody]NegocioViewModel model)
模型中的所有属性都为空... 我已经尝试过使用和不使用 [FromBody] 和其他解决方案,但都没有奏效,有什么建议吗?谢谢!
【问题讨论】:
-
因为您没有发布 json...您正在发布一个字符串... PostAsJsonAsync 应该将您的对象转换为 json...您不需要自己转换它所以我很确定您是什么发送与 NegocioViewModel 不匹配...您需要做的是摆脱 StringContent 及其中的所有内容,并按原样传递您的模型
-
@JonathanAlfaro 感谢您的回复,HttpClient 无法按原样发送我的 NegocioViewModel 对象,您知道我该怎么做吗?谢谢!
-
你已经在使用 PostAsJsonAsync 它应该允许你发送一个对象
-
如果你的意思是这样的 var postTask = client.PostAsJsonAsync
("AgregarNegocio", model);那是我写的第一个代码,它甚至没有访问 web api,有什么可能的原因吗? RequestUri:'.../AgregarNegocio',版本:1.1,内容:System.Net.Http.ObjectContent`1[..NegocioViewModel],标头:{ Request-Id:|9d11fffd-49d88077a7dffa67.1。传输编码:分块内容类型:应用程序/json;字符集=utf-8 }} -
这就是你发送它的方式。您还需要确保您的 Action 是后端的 HttpPost
标签: asp.net-core webapi