我只使用 MVC 框架 (ASP.NET MVC2/3/Razor) 几个月了,我真的很喜欢它,但是我很难找出视图模型的标准。在我的项目中,我有一个 Models 文件夹(包含我的数据模型 - Linq DBML、Repository[ies]、Extension methods)和一个 Models/ViewModels 文件夹。我的视图模型通常是可重用的类,它们通常只包含 LINQ 对象或我需要访问特定视图的对象集合的简单 get/set 属性。
现在我遇到的问题是弄清楚何时创建视图模型。我的目标是尽可能频繁地使用 LINQ 对象作为视图模型,尤其是当它是一个编辑操作时。我的问题是,如果我有其他可能只想用于显示目的的数据怎么办?我不喜欢使用 ViewData/ViewBag 集合,因为访问这些集合的成员需要了解集合项的密钥(设计师/前端人员不容易“猜测”)。我也不喜欢为每个视图创建一个 ViewModel 的想法,因为它看起来像是不必要的混乱代码。
例如,假设我有一个员工的数据模型,并且我想显示一些与该员工无关的信息——例如,站点统计信息、动态菜单以及您能想到的任何其他可能来自数据库的信息。我应该通过什么模型 /Employee/Edit 操作?Employee 对象和一堆 ViewData[] ,还是一个自定义的 EmployeeView?
有黄金标准吗?我错过了什么?你在做什么不同的事情,我应该调查一下?提前致谢!