json - .NET Core 控制器继承
问题描述
我寻找了这个问题,尽管有人问了类似的问题,但我找不到答案。
所以我有一个问题。我有 2 节课:
public class Person {
public string name{ get; set; }
}
public class Doctor: Person{
public string specialization{ get; set; }
}
我有控制器:
[HttpPost]
...
public virtual IActionResult PostPerson([FromBody]Person person)
{ ... }
如果我这样发送 JSON,我该如何做到这一点:
{"specialization":"obgyn"}
我在控制器中获得 Doctor 对象?
我是否需要进行自定义绑定(是否有示例?但是我有更多这样的类(100ts),所以我不想专门为每个类都这样做)或在 Startup.cs 中设置 JsonOptions,还是第三个? ?
谢谢你。
解决方案
所以让这个工作的方法是在你的 Startup.cs 文件中添加一个 JSonOptions:
opts.SerializerSettings.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All;
然后这会将 $type 属性添加到响应中,并且还会从传入的 Json 消息中读取 $type。不幸的是,我的客户希望改变,因为他不想通过该字段来识别班级,而是自定义另一个,所以这个解决方案不适合我,但我的答案仍然可以帮助某人
推荐阅读
- reactjs - 可以将新的/修改后的 URL 添加到子组件中吗?
- vba - 微软 Word 宏 VB
- angular - 错误:无法解析主页的所有参数:([object Object],?)
- c# - 如何格式化像上午 10:30 这样的时间
- php - 从 Laravel 中移除 Stripe 支付
- javascript - js倒计时在移动设备中不显示时间
- powershell - Powershell正则表达式日志条目为字符串
- java - 当我点击菜单项时,菜单项不起作用
- css - 如何更改输入焦点上的占位符颜色?
- dictionary - Flutter 如何从 Future Function 访问地图