我们的应用程序尽最大努力使控制器保持小型化,我们的视图与 UI 相关,并且我们为每个视图提供了一个 ViewModel,用于提取模型数据。我们使用 AutoMapper 可以将模型映射到视图模型中。
在某些情况下,我们需要大量代码来构建 ViewModel,虽然技术上可以在 AutoMapper 的 Map 功能中完成,但它变得庞大而丑陋。所以我们有一些逻辑,它已经进入了我们的一些 ViewModel,但是这些逻辑变成了 200 多行,而且感觉不正确。例如,对于一个 ViewModel,我们有大约 6 个属性,这些属性不是来自单个模型,而是来自大约 4-5 个模型,并且是动态的,因为它们是在运行时计算的,因此它不像从模型到我们的 ViewModel 中。
有没有其他人遇到过这个问题,或者发现需要为那些无法从单个模型轻松构建的 ViewModel 创建某种 ViewModel 工厂?
编辑
示例:假设您有一个课程页面,例如“Beginning French 101”。课程模型可能有老师、主题、先决条件、班级编号、部分等。当学生访问课程页面时,我可能想更改显示有关该班级(或其他班级)的附加信息的方式或内容学生的注册状态、注册、过去的历史、学生注册的其他课程等。我这里有两个模型,课程和学生,但我可能希望根据某些业务规则提取其他信息以包含在 ViewModel 中.