假设我有一些类似于这样的模型对象:
public class FooModel
{
[Required]
public string Name { get; set; }
[StringLength(100)]
public string Description { get; set; }
public bool HasBar { get; set; }
public BarModel Bar { get; set; }
}
public class BarModel
{
[Required]
public string Name { get; set; }
[StringLength(100)]
public string Description { get; set; }
public bool HasWidgets { get; set; }
public IEnumerable<WidgetModel> Widgets { get; set; }
}
public class WidgetModel
{
[Required]
public string Name { get; set; }
[StringLength(100)]
public string Description { get; set; }
public string Type { get; set; }
public bool Active { get; set; }
}
我想为此构建一个视图FooModel
,在HasBar
检查输入后,将加载部分视图Bar
,并完成验证(不显眼)。如果选中Bar
's HasWidgets
,它将加载包含用于将类型项添加WidgetModel
到表单数据的接口的部分视图。
单击表单的提交按钮时,我希望将完整的图表传递给控制器。
我想我可以用编辑器模板做这样的事情,但是我的子对象的命名方式不会被解析为图形的一部分(我希望是因为它们是在事后添加的,并且不知道它们是更大模型的一部分)。
是否有支持这种事情的机制/模式?我知道这有点递归,但我是否必须重新发明轮子才能正确命名所有内容?