我阅读了这个 q/a Real example of TryUpdateModel, ASP .NET MVC 3并且对@ben-foster 的响应非常感兴趣。
我开始对该答案发表评论,但时间很长,因此开始了一个新问题。
拥有适用于所有方法的 ViewModels(我非常喜欢)让我进入了一些“奇怪的场景”,我想要建议我应该怎么做。
想象一下这个结构:
public class ProductListEditableViewModel {
List<ProductEditViewModel> products {get;set;}
}
public class ProductEditViewModel {
List<PriceViewModel> prices {get;set;}
}
public class PriceViewModel {
CurrencyViewModel currency {get;set;}
}
等等 ... ?你真的为每个内部类制作一个视图模型吗?那么如何将所有这些映射到模型对象?
此外,这涵盖了编辑,但我有一个添加,一个通过电子邮件发送,以及可能更多的视图,所以更多的视图模型!我应该像这样结束吗:
AddCurrencyViewModel QuickAddCurrencyViewModel EditCurrencyViewModel ListCurrencyViewModel DeleteCurrencyViewModel ShareCurrencyViewModel
都具有“几乎相同”的属性?
是否应该将所有这些打包到一个文件中?
我还需要所有这些视图模型还是继承方法可能会更好?
如果可以的话,我会很感激详细说明复杂的场景
此外,我使用 DTO 方法将一些模型对象公开到 Web 服务/api 中,所以我已经有了某种形式的映射,其中这个 DTO 不完全是我的 ViewModel,我应该删除其中一个吗?在这种情况下有什么建议?
我正在使用实体框架,但我认为问题是(或应该是)ORM 不可知论。不使用 UoW 模式(这会有帮助吗?),因为随着物体深度的增加,它看起来会变得更加复杂。
非常感谢!