1

我正在构建我的第一个 MVC 项目,我对模型有疑问。

每个网页只能包含 1 个模型,但我的页面需要 2 个模型,一个是搜索选项(能够缩小搜索范围,例如选择价格范围、颜色等)以及数据。

是否真的像创建一个新模型一样简单,类似于在这种情况下只有两个属性的 ViewModel,一个 SearchModel 和一个 ProductModel?

4

2 回答 2

1

是的,确实有两个“模型”,有时会令人困惑。有“视图模型”和“域模型”。视图模型直接传入和传出视图。领域模型描述了您正在处理的现实领域,并且是数据库所保留的内容。通常,它们是相同的东西,例如,如果您正在显示单个真实域对象(例如,汽车)的信息。如果你有两个域模型在一个页面上,你应该创建一个视图模型,将两者都作为属性。

于 2013-02-15T12:54:27.263 回答
1

如果您希望在视图中有两个模型,那么这个问题可能会提供有用的信息:

视图中的多个模型

编辑:

一个很好的例子是新 mvc 应用程序的默认“帐户”控制器中的“管理”视图。它使用局部视图来处理用户密码的更改。虽然两个视图都使用相同的模型类型,但它显示了如何实现局部视图。在这种情况下,主视图和部分视图都提交给控制器上的相同方法,因此它们需要使用相同的模型(这是控制器方法的参数)。但是如果部分要调用不同的控制器方法,那么提交的模型可能会不同。希望这是有道理的:)

于 2013-02-15T12:55:03.697 回答