我试图在控制器中使用一个单一@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>
但它不起作用,更糟糕的是,表单尝试提交基类,然后抛出“无法创建抽象类”异常。我该如何扩展这些?