使用 ASP.NET MVC 4,我有一个接受 JSON 结构的控制器:
public class SomeDto {
...
public Boolean IsUnicornAlive { get; set; }
...
}
[HttpPost]
public ActionResult DoSomething(SomeDto dto) {
...
}
现在,如果这个 POST 请求在没有指定 Content-Type 的情况下进入:
{
...
"IsUnicornAlive":true
...
}
该操作仍会被调用,但 IsUnicornAlive 属性将为假。本质上这是创建请求的一方的问题,但我仍然希望 ASP 不会静默处理它,也不会使用默认值调用我的操作。在这种情况下,最合适的处理是 4xx 错误,理想情况下是 415。实现它的最简单方法是什么?或者有没有办法知道在控制器操作中使用了默认值?
注意:这个问题不是关于没有这个问题的 ASP.NET WebApi。这是专门关于 MVC 的。