从代码到Form的FormCollection

时间:2013-09-15 20:20:40

标签: c# asp.net-mvc

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

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

要处理控制器操作,我的想法是拥有以下代码:

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

我的BaseObject有一个用于标识特定对象的属性,例如:model.SubObjectTypeId

我的想法是在控制器操作中设置switch并将FormCollection“转换”为特定模型。

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

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

PS:我正在努力避免使用AutoMapper。我更喜欢ASP.NET MVC的内置解决方案。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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