ASP.NET MVCは、他のモデルクラスを継承するモデルクラスがある場合に、モデルバインディングを機能させる簡単な方法を提供しますか?
私のシナリオでは、に強く型付けされたビューがありますList<Person>
。
Person
、つまりPersonTypeOne
とを継承するクラスがいくつかありますPersonTypeTwo
。
これらのクラス名と一致する名前を持つ(そしてそれぞれのモデルのプロパティのフォーム要素をレンダリングする)3つの強く型付けされた部分ビューがあります。
これは、メインビューで次のコードを使用できることを意味します。
<% for(int i = 0; i < Model.Count; i++)
{
Html.RenderPartial(Model[i].GetType().Name, Model[i]);
} %>
これは、ユーザーがフォームを送信する場合を除いて、関連するコントローラーアクションメソッドが、、およびのリストではなく、を取得する場合を除いて、うまく機能しList<Person>
ます。Person
PersonTypeOne
PersonTypeTwo
PersonTypeOne
フォームの送信には、デフォルトのモデルバインダーにおよびPersonTypeTwo
クラスのインスタンスを作成するように指示するのに十分な情報が含まれていないため、これはほぼ予想どおりです。
それで、デフォルトのモデルバインダーからそのような機能を取得する方法はありますか?