javascript - Json参数转换继承Web api 2

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

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

public IHttpActionResult PutSubscriber(int id, Subscriber subscriber)

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

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

最佳答案

我已经使用以下页面上提供的信息使其正常工作: 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', ....}

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

关于javascript - Json参数转换继承Web api 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28961717/

相关文章:

javascript - 如何触发元素上的浏览器上下文菜单。 (就像用户右击一样)

.net - .NET中具有验证功能的OAuth

c# - Json.NET 根据 Schema 验证 JSON 数组

c# - 什么是 System.Web.Extensions?

c# - 事件、委托(delegate)与 Action<T>

javascript - 多个搜索输入使用 `this` 作为值

javascript - 可拖动的 jQuery 轮播定制

javascript - 如何使用关闭按钮从图像创建缩略图

c# - 如何检测用户是否单击了文本框的离开事件中的 X 按钮

c# - 什么时候命名参数有用?