我有一个简单的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,空值等)。我觉得控制器没有正确地反序列化对象,但我有点不知道如何解决这个问题。有什么想法吗?
答案 0 :(得分:1)
解决方案是因为我的控制器不是ApiController。一旦我将控制器更改为继承自ApiController而不是Controller,所有工作都没有问题。