Json 参数强制转换继承 Web API 2.

本文关键字:Web API 继承 转换 参数 Json | 更新日期: 2024-11-07 16:50:31

我正在使用MS Web API 2通过ajax接收来自我们网页的调用。然后我有 2 个类:订阅者和外部订阅者。订阅者包含非常基本的数据,如名称和 ID。外部订阅者从订阅者继承并添加地址和电子邮件等基本数据。我有一个 api 方法来编辑如下所示的订阅者的数据:

public IHttpActionResult PutSubscriber(int id, Subscriber subscriber)

在我们的页面中,我使用提供的数据创建一个 json 字符串,这导致它成为外部或普通订阅者。我能够同时使用两者发布到此函数,但是对于 externalSubscriber 对象,添加的数据会丢失,并且尝试从订阅者投射会导致错误。

我的问题是是否有人对此问题有任何经验,以及除了创建用于放置外部订阅者的特定功能之外,是否还有其他方法可以解决此问题。

Json 参数强制转换继承 Web API 2.

我通过使用以下页面上提供的信息使其工作:http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htmWeb API 中的多态性:可能单个端点吗?

首先,我设置 json 设置:

jsonsettings.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;

然后在使用 AJAX 发送之前设置 JSON 对象的类型

jsonObject { '$type' : .Models.ExternalSubscriber, solution.project', ....}

在此之后,我能够将传入的订阅者转换为外部订阅者并访问其属性。