为什么我的WebAPI中没有接收到反序列化的数据

本文关键字:反序列化 数据 我的 WebAPI 为什么 | 更新日期: 2023-09-27 17:59:52

我有一个简单的WebAPI应用程序。在我的控制器中,我有:

[HttpPost]
public ActionResult DoSomeWork(string stringParam, DTOObject dto)
{
    // Some work gets done in here
}

我有一个控制台应用程序这样做:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(_context);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("ControllerPath/DoSomeWork", new object[]{someString, dtoObject}).Result;

我没有收到任何错误。当我的断点在控制器内部被击中时,它会显示字符串为NULL,而DTO是一个完全填充的,但具有默认值(1/1/1900s、NULL等)。我觉得控制器没有正确地反序列化对象,但我有点不知道如何解决这个问题。有什么想法吗?

为什么我的WebAPI中没有接收到反序列化的数据

解决方案是因为我的控制器不是ApiController。一旦我将控制器改为继承自ApiController而不是controller,一切都顺利进行。