如何提交派生自相同基类的不同模型

时间:2012-07-06 08:59:07

标签: c# asp.net-mvc-3 inheritance form-submit model-binding

我正在尝试在控制器中使用单个@Html.BeginForm()和单个Create操作。但是在视图和控制器动作中,我的模型都是抽象类。所以我需要根据用户的选择以某种方式在视图的Form中创建派生类,并通过基类将其发送到控制器,以便稍后通过检查基本模型的类型在控制器操作中捕获它,如

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>

但它不起作用,更糟糕的是,表单尝试提交基类,然后抛出“无法创建抽象类”异常。我该如何扩展这些?

0 个答案:

没有答案