ASP.NET MVC查看具有相同基类的数据类
问题描述:
我有一个编辑页面,它具有基类作为数据类,它将根据模型的派生类显示不同的编辑器窗体。但是,发布后ASP.NET MVC查看具有相同基类的数据类
[HttpPost]
public ActionResult Edit(BaseClassModel model)
此处的模型仅保留基类的值,并且不能转回派生类。
这怎么解决?
谢谢
答
根据您的实现的其余部分,您可以
- 体型封装在传承,使每个当前的子类包含复杂属性的所有公共字段
- 编写你自己的ModelBinder(以DefaultModelBinder源为例),并在Global.asax中创建它,例如:
ModelBinders.DefaultBinder = new ComplexModelBinder();
- 创建一个
BaseClassModelBinderAttribute
并标记每个你的论点,例如:public ActionResult Edit([BaseClassModelBinder] BaseClassModel model)
- 上述组合