継承可能な型を指すリストが内部に定義されたオブジェクトがあります。私が理解していることから、MVCのデフォルトのモデルバインダーは、フォームからこの配列にデータを読み込むときに常にベースタイプをインスタンス化するため、デフォルトではベースタイプのリストがあります。
そのため、独自のモデル バインダーとオーバーライドを使用してCreateModel
、特定の型 (非表示フィールドなど) をインスタンス化する必要があります。ただし、これを実行して使用すると
bindingContext.ValueProvider.GetValue("ModelType")
null
フィドラーを使用すると、フォームの値Settings[0].ModelType
にオブジェクトの型が含まれていることがわかりCreateModel
、正しい型をインスタンス化するにはこの値が必要ですが、常に返されます。