【问题标题】:Json parameter casting inheritance web api 2Json参数转换继承web api 2
【发布时间】:2015-03-10 10:48:44
【问题描述】:

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

public IHttpActionResult PutSubscriber(int id, Subscriber subscriber)

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

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

【问题讨论】:

标签: javascript c# .net json asp.net-web-api2


【解决方案1】:

我已通过使用以下页面上提供的信息使其工作: http://www.newtonsoft.com/json/help/html/SerializeTypeNameHandling.htm Polymorphism in Web API: Single endpoint possible?

首先我设置了json设置:

jsonsettings.SerializerSettings.TypeNameHandling = TypeNameHandling.Auto;

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

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

之后,我可以将传入的订阅者转换为 ExternalSubscriber 并访问其属性。

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 2012-07-05
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多