JSON.NET不可避免地衍生的对象,该对象在使用表单数据发布时隐藏了基本属性



我有一个接受派生类的WebAPI控制器方法:

    //Controller Method
    public IHttpActionResult Test(DerivedClass m)
    {
        return Ok(true);
    }
    //base class
    public class BaseClass
    {
        public int Id{ get; set; }
    }
    //derived class
    public class DerivedClass : BaseClass
    {
        public new int? Id { get; set; }
    }

我正在使用ID = 1

发布

如果我使用JSON数据类型发布到此控制器方法,则可以正常工作(我得到一个具有ID = 1的对象),但是如果我发送X-WWW-Form-urlCormeded数据,则该对象为null。

现在,如果我更改了接受基本的控制器方法并使用x-www-form-urlencoded数据,则该对象不是null(id = 1)。另外,如果我修改派生类并删除新的INT?属性也很好。

这使我相信JSON.NET不会对隐藏派生的类属性的对象进行X-WWW-Form-rencoded数据的疑问。关于如何解决的任何建议?

要考虑的一件事是,无效的int属性将与不可删除的签名不同,因此,如果这是您的意图,您可能不会实际上覆盖该属性。

相关内容

  • 没有找到相关文章

最新更新