我有一个ASP.NET Core API,期望以特定对象的形式发出POST请求 - 请参阅下面的代码示例。
我确保我的前端客户端以精确的形状发送数据。我还通过检查我与Fiddler的调用确保将数据发送到API。
当请求到达API方法时,它是null
。
我的第一个想法是模型绑定器是导致问题的原因。意思是,不知何故,我发送的数据与我的API方法所期望的对象不匹配。
我现在一直盯着代码几个小时,对我来说似乎没问题。假设前端发送的对象的形状与我的API期望的对象匹配,还有什么可能导致这个问题?
我在我的应用程序中使用了类似的代码,一切正常。
我的代码如下所示:
[HttpPost("test")]
public async Task<IActionResult> DoSomething([FromBody]MyObject data)
{
// Some logic here...
}
以下是我确定的一些事项:
更新:
这绝对是由模型绑定器引起的。我将代码从MyObject
更改为dynamic
以查看会发生什么,并且确定我正在获取前端发送的数据。我还没有找到引起问题的确切属性,但我很接近。这是我的API方法现在的样子,直到找到问题的确切原因:
[HttpPost("test")]
public async Task<IActionResult> DoSomething([FromBody]dynamic data)
{
// Some logic here...
}
更新2: 发现问题!!!!
我有一个GUID
属性,其中包含null
valud,模型绑定器不喜欢它。