0

我正在开发一个 ASP.NET Web 应用程序。

在一个视图中,我有一个基本模型 (BaseObject),并且根据组合框的选择,有更多字段包含该对象的特定信息(具有自己的模型类,如 SpecificObject1、SpecificObject2 ......)。

为了处理控制器动作,我的想法是有以下代码:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Update(BaseObject model, FormCollection fc)
{
    ...
}

MyBaseObject具有用于标识特定对象的属性,例如:model.SubObjectTypeId

我的想法是switch在控制器动作中有一个并将其“投射”FormCollection到特定模型。

有没有办法自动执行此操作,还是我需要创建帮助类来创建特定对象类的实例并设置参数?

输入字段的名称与特定对象的属性名称相同。

PS:我试图避免使用 AutoMapper。我更喜欢 ASP.NET MVC 的内置解决方案。

谢谢你的帮助。

4

1 回答 1

1

通常在这些情况下,最好构建一个 ModelBinder 一个类,该类的任务是为控制器操作创建正确的实例。它解析 Form 集合并创建实例以传递给控制器​​。这样控制器更薄,更尊重 SRP。:-)

于 2013-09-15T20:24:41.440 回答