为MVC创建模型

时间:2013-02-15 12:42:10

标签: asp.net-mvc

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

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

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

2 个答案:

答案 0 :(得分:1)

是的,实际上有两个“模型”有时令人困惑。有“视图模型”和“域模型”。视图模型直接传递给视图和从视图传递。域模型描述了您正在处理的现实域,并且是数据库持久存在的域。通常,它们是相同的,例如,如果您正在显示单个真实域对象(例如,汽车)的信息。如果您在一个页面上有两个域模型,则应创建一个包含属性的视图模型。

答案 1 :(得分:1)

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

multiple-models-in-a-view

编辑:

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