ASP.NET MVC - 运行时针对不同视图的模型绑定

时间:2012-03-22 17:16:24

标签: asp.net-mvc

我的最新项目涉及在运行时返回不同视图的操作(简单地说,应用程序有许多不同的客户作为用户,他们想要自己的自定义数据输入表单设计 - 这些表单都共享相同的模型对象图,但他们对模型数据的显示彼此完全不同)...

例如,“案例”实体有多个与之关联的人员。某些表单只显示一个Person的字段,其他表单支持多个Person,而另一个表单根本不包含Person信息。此外,表格具有不同的领域 - 许多形式缺少其他领域的许多领域。

由于这种截然不同的行为,我相信每个视图设计都需要一个不同的模型绑定器。

StackOverflow可以推荐在这种情况下采取的行动方案,或者保持代码简单的替代解决方案。

1 个答案:

答案 0 :(得分:2)

如果您的所有视图模型都派生自一个公共抽象基础视图模型,您可以让您的POST操作将此公共视图模型作为参数,然后编写一个自定义模型绑定器,它将实例化并绑定正确的实例,假设每个视图发送一个额外的包含具体类型的参数。

以下是an example如何做到这一点。