コントローラーで単一のアクション@Html.BeginForm()
と単一のアクションを使用しようとしています。Create
しかし、ビューとコントローラー アクションの両方で、私のモデルは抽象クラスです。したがって、ユーザーの選択に従ってビューのフォームに派生クラスを作成し、基本クラスを介してコントローラーに送信し、後で基本モデルのタイプを確認してコントローラーアクションでキャッチする必要があります。
if(baseModel is derived1)
{}
else if(baseModel is derived2)
{}
のように、エディターでモデルをキャストしてみました
<div class="editor-label">
@Html.LabelFor(model => ((YagliBoya)model).En) (cm)
</div>
<div class="editor-field">
@Html.EditorFor(model => ((YagliBoya)model).En)
@Html.ValidationMessageFor(model => ((YagliBoya)model).En)
</div>
しかし、それは機能しません。さらに悪いことに、フォームは基本クラスを送信しようとし、「抽象クラスを作成できません」という例外がスローされます。これらを拡張するにはどうすればよいですか?