多态MVC视图

时间:2012-08-27 18:07:19

标签: c# asp.net-mvc polymorphism asp.net-mvc-4

所以我在ASP.NET MVC中创建一个注册页面,并且根据许多条件(从数据库中获取)改变了一个字段列表。

每次更新数据库时,在没有代码更改的情况下在视图上显示这些字段的最佳方法是什么。

我正在考虑的当前系统是使用“Name,DataType”创建一个Dictionary,然后只是遍历列表并为每个名称添加一个新的输入类型(使用数据类型的开关来获取正确的编辑器)。但它似乎是一种老式的,并没有充分利用.NET MVC系统的好处(例如验证,默认值,特定内容的自定义编辑器)。

我有可能在.NET中没有意识到处理这个问题的方法吗?

1 个答案:

答案 0 :(得分:7)

我有类似的问题。发布时间为here

不,ASP.NET MVC中没有多态视图。至少我无法让它做大量的实验,并在Stack Overflow上以不同的方式多次提出这个问题。

视图中定义的@model的类型将在视图内定义其类型,而不是模型的实际类型(如果它是接口或抽象类或基类,而在传递子类时你所有漂亮的装饰品都无法使用,因为型号是由型号定义的。

对不起,您的问题没有正面答案。我最终编写了一堆编辑器模板,这些模板只是内部的模型类型不同。巨大的DRY违规,但这是ASP MVC的工作方式,很遗憾

希望这有助于节省一些时间。