Связующее модели не поддерживает полиморфизм. Он создает буквальный тип (типы) модели и любые связанные с ней подмодели. Затем он пытается привязать тело запроса к этим типам. Он не будет выводить производные типы.
Другими словами, похоже, что вы отправляете экземпляры SubClass1
и SubClass2
как часть вашего свойства MainClassList
. Однако связыватель модели собирается создать все это как MainClass
, потому что это тип, который определен. Любые опубликованные данные, относящиеся к SubClass1
или SubClass2
, будут просто отброшены, и, в конце концов, все, что у вас есть, это экземпляры MainClass
. Таким образом, конечно, никакой конкретной проверки на SubClass1
или SubClass2
не выполняется, поскольку у вас нет экземпляров SubClass1
или SubClass2
.