此示例中的“查找”是IList<string>
州的缩写。通常,您的域模型 POCO 不会包含这些选项。ViewModels 通常负责引用原始域模型和查找对象,但是当域模型嵌套并且您使用 MVC 模板时会发生什么(它无法访问原始模型的根属性?
有没有办法将查找包含在一个对象中,并将模型包含在模板的不同对象中?是否允许在视图中即时组装特定于该模板的 ViewModel(必须包含来自那里的任何嵌套数据)?我认为下拉查找值的静态方法很糟糕。
有任何想法吗?
注释(据我所知):
来自存储库的域模型 POCO 的结构不会改变。例如,如果您需要一个模型来同时拥有 Customer 对象和美国州的 DDL 选项,您通常有一个 ViewModel 引用 Customer 对象和 Customer Lookup 列表。
但是,当您有一个嵌套的域模型(聚合根)时,嵌套对象没有放置查找列表的位置,并且 MVC 模板无法访问根级别的视图模型(它们的视图模型是部分模型)。
编辑:
有没有办法将 DDL 列表放在 ViewModel 的根级别,然后当您到达 Customer 对象时,构造一个引用根级别 DDL 列表和当前 Customer 对象的新 ViewModel 发送到模板?这将消除模型中的重复数据,并为所有视图使用单个模型。唯一不好的是您视图中的控制器之类的数据汇编代码(这同样糟糕)。