我使用了 What is ViewModel in MVC?
的一些想法我已经阅读了许多其他文章和文章,但是还没有阅读任何能真正解释它们之间相互作用的文章,所以我的文章涉及很多。
首先,我将从下面的问题开始,但是上下文可能解释了我的一些困惑。
问题
ASP.NET MVC的视图模型概念如何适合整个MVC设计模式?具体来说,域模型,视图模型,视图和控制器之间的交互是什么?
我从未考虑过将模型分为视图模型和域模型,实际上只是使用了我认为的域模型(在ASP.NET之外同时包含视图模型和域模型是否正常? MVC?)。
似乎视图/视图模型应该相互依赖,因为它们彼此之间是如此特定。
MVC的想法不是使代码更具可维护性和可重用性吗?因为视图模型特定于视图,所以它会在其他地方使用吗?而且,如果不会在其他地方使用它,那么仅在视图中定义视图模型是否更可维护?
上下文
在学习了一些软件设计和开发课程之后,我学习了关于架构设计模式(主要是MVC)的知识。从我所学到的和已在项目中实施的内容(如果我错了,请纠正我)是MVC分隔了
。此外,
我最近开始了一个实习,其中我们使用ASP.NET MVC来构建我们的Web应用程序。使用了一段时间后,我显然注意到该模型分为两类:域模型和视图模型。
据我了解(如果我错了,请再次纠正我):
因此,基本上,用户的个人资料可能会显示其姓名,年龄和个人简介,并且有一个查看模型:
class UserProfileViewModel
string Name
int Age
string Bio
尽管可能存在域模型
class User
string ID
string Name
string Email
int Age
DateTime DateJoined