我正在构建我的第一个MVC项目,我对该模型有疑问。
每个网页只能包含1个模型,但我的页面需要2个模型,其中一个是搜索选项(缩小搜索范围的能力,如选择价格范围,颜色等)以及数据。
它是否真的像创建新模型一样简单,类似于ViewModel,在这种情况下只有2个属性,SearchModel和ProductModel?
答案 0 :(得分:1)
是的,实际上有两个“模型”有时令人困惑。有“视图模型”和“域模型”。视图模型直接传递给视图和从视图传递。域模型描述了您正在处理的现实域,并且是数据库持久存在的域。通常,它们是相同的,例如,如果您正在显示单个真实域对象(例如,汽车)的信息。如果您在一个页面上有两个域模型,则应创建一个包含属性的视图模型。
答案 1 :(得分:1)
如果您希望在视图中有两个模型,那么此问题可能会提供有用的信息:
编辑:
一个很好的例子是新的mvc应用程序的默认“帐户”控制器中的“管理”视图。它使用部分视图来处理用户密码的更改。虽然两个视图都使用相同的模型类型,但它显示了如何实现局部视图。在这种情况下,主视图和部分都在控制器上提交相同的方法,因此它们需要使用相同的模型(这是控制器方法的参数)。但如果部分调用不同的控制器方法,那么提交的模型可能会有所不同。希望这是有道理的:)