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

时间:2013-02-18 21:17:21

标签: c# asp.net json serialization

我有一个简单的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;

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

1 个答案:

答案 0 :(得分:1)

解决方案是因为我的控制器不是ApiController。一旦我将控制器更改为继承自ApiController而不是Controller,所有工作都没有问题。