从代码到模型的窗体集合

本文关键字:窗体 集合 模型 代码 | 更新日期: 2023-09-27 18:31:27

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

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

为了处理控制器操作,我的想法是使用以下代码:

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

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

我的想法是在控制器操作中有一个switch,并将FormCollection"强制转换"到特定模型。

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

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

PS:我试图避免使用自动映射器。我更喜欢 MVC ASP.NET 内置解决方案。

感谢您的帮助。

从代码到模型的窗体集合

通常,

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