Can I pass an interface based object to an MVC 4 WebApi POST?

前端 未结 4 1237
半阙折子戏
半阙折子戏 2020-12-30 03:24

I want to have an API as such:

public class RelayController : ApiController
{
    // POST api/values
    public void Post([FromBody]IDataRelayPackage package         


        
4条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-30 03:40

    The serializer needs a type that it can construct, one with an empty (Default) constructor. Since an Interface can't be constructed, serialization fails and you get a null value.

    Two options:

    1. Use a POCO (Plain Old Clr Object) with a default constructor
    2. Implement your own binder using IActionValueBinder

提交回复
热议问题