这是来自MVC转储的问题:
您正在设计MVC Web应用程序。 对于没有技术背景的设计师来说,视图必须尽可能简单。 您需要组合两个现有模型以满足要求。 您应该使用MVC框架的哪个组件?
A. View
B. View Model
C. Controller
D. Model
答案:D
这是对的吗?根据我的理解,我们应该使用ViewModel。
答案 0 :(得分:0)
嗯,如果你看到,当我们谈论ViewModel
时,没有什么是有形的,而是更多地用来暗示Model
所绑定的View
。通常,当我们遇到View
需要多个Model
的情况时,我们会在其周围放置一个包装类并将其称为ViewModel
无论如何,您的商家/域名实体应该与Model
或ViewModel
不同。
现在只需回答您的问题,因为您需要为Models
多个View
,您应该有一个包装类,并且称之为ViewModel
是绝对公平的,所以从某种意义上说,你是对的:)
答案 1 :(得分:0)
从我的角度来看,视图模型是模型,旨在满足视图的需求。这意味着:如果你"结合"要模型"为了满足要求",您将拥有视图模型。
我在MVC项目中的工作:我在C#代码中使用模型并将视图模型传递给视图,以便在视图中使用它。
答案 2 :(得分:0)
我认为对于使用MVC的开发人员,他正在开发作为其他经验丰富的MVC开发人员团队的一部分,那么你是对的,你应该使用ViewModel将显示逻辑与域模型或数据库模型分开(取决于你的应用程序架构。)
但是,我认为这个问题的关键部分是"对于没有技术背景的设计师来说,视图必须尽可能简单。"
因此,我认为这个问题建议你应该为经验较少的人做简单的事情,直接在视图中创建或使用现有的模型。
然而,问题的混乱部分是它询问您将使用什么来组合两个现有模型(即,您将使用什么类型的包装类)。这个包装类可以与其他域/数据库模型一起创建,在这种情况下,您可以将其称为模型。或者您可以在UI MVC项目中创建一个包装类,它将两个现有模型组合在一起并将其称为视图模型。正如问题所要求的那样,你会使用哪个组件的MVC框架" (即UI层)然后我希望包装类将被称为视图模型。但问题还提到了MVC框架&#34 ;; MVC代表模型,视图,控制器,因此您可能认为它期望您将包装类称为模型。
在一天结束时,恕我直言,这个问题很模糊,两个答案都可以被认为是正确的。无论如何,无论您将其称为模型还是视图模型,您创建的包装类都可能看起来完全相同。
答案 3 :(得分:0)
这很老,但是正确的答案是ViewModel,关于这个问题是:“您需要结合两个现有模型来满足要求。”然后,如果您选择答案“模型”,则这是不正确的。它必须是结合视图模型
B)是正确答案
最佳,