mvc3 - 使用编辑器实现变量类型的递归模型..

时间:2012-06-06 13:35:22

标签: asp.net-mvc-3 recursion

我对MVC3很陌生,只是学习并正在寻找一些指导。

为简单起见,我有一个代表3种元素,问题,答案和容器的模型。

所有3都继承自公共基类型,我称之为baseElement。

当模型传递给视图时,它是“baseElement”类型的单个对象

容器元素有一个baseElements的内部列表。 这些baseElements可以是三种类型中的任何一种。所以 - 容器可以包含问题或容器(也可能包含问题,容器等)。

每个问题都可以包含不同类型的答案类型。

我正在试图弄清楚如何使用mvc3来最好地实现一个系统来向用户显示这个容器/问题结构 - 允许他们在尊重传入模型的嵌套结构的同时回答各种答案类型的问题。 / p>

1 个答案:

答案 0 :(得分:0)

好吧,尽管我的模型具有动态特性,但经过一段时间的探索后,我已经能够渲染我的模型对象结构而没有太多的复杂性。

我是通过使用强类型编辑器模板(每种类型一个)和视图中的以下代码来实现的。

@Html.EditorFor(x => @Model, @Model.GetType().Name)

这会根据实际类型自动选择要使用的编辑器模板。 在每个特定类型的编辑器模板中,我为每个孩子进行相同的调用。

实际上它很简单。

我现在遇到的一个大问题是,如何将表单值绑定(或以其他方式检索)模型返回到用户发布后可用的内容。结构的动态特性导致默认模型绑定器穿过它的臂并放弃。

此时我认为检索/重新映射表单数据可能是一个更大的问题,但这肯定需要更多的修补,也许是一个单独的问题。

感谢您的帮助。 : - )