0

コントローラーで単一のアクション@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>

しかし、それは機能しません。さらに悪いことに、フォームは基本クラスを送信しようとし、「抽象クラスを作成できません」という例外がスローされます。これらを拡張するにはどうすればよいですか?

4

0 に答える 0