我找了这个问题,尽管有类似的问题,我找不到答案。
所以我有一个问题。我有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,或者第三个东西??
谢谢。
答案 0 :(得分:0)
因此,在你的Startup.cs文件中使用JSonOptions来实现这个工作的方法:
opts.SerializerSettings.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All;
然后,这将为响应添加$ type属性,并且还将从传入的Json消息中读取$ type。不幸的是,我的客户希望改变,因为他不想通过那个领域识别班级,而是另一个习惯,所以这个解决方案不适合我,但答案我仍然帮助某人