Asp.net mvc 为MVC创建模型

Asp.net mvc 为MVC创建模型,asp.net-mvc,Asp.net Mvc,我正在构建我的第一个MVC项目,我对模型有一个问题 每个网页只能包含1个型号,但我的网页将需要2个型号,一个是搜索选项(能够缩小搜索范围,如选择价格范围、颜色等)以及数据 它真的像创建一个新模型一样简单吗?类似于ViewModel,在本例中它只有两个属性,一个SearchModel和一个ProductModel?是的,实际上有两个“模型”,有时会让人困惑。有“视图模型”和“域模型”。视图模型直接传递给视图和从视图传递出去。域模型描述了您正在处理的实际域,并且是数据库所坚持的。通常,它们是相同的,

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

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


它真的像创建一个新模型一样简单吗?类似于ViewModel,在本例中它只有两个属性,一个SearchModel和一个ProductModel?

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

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

编辑:


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

太好了,这么多便士都掉下来了!这太好了,非常感谢你的帮助。你引用的帖子让我感到困惑;我认为每个页面只能有一个模型,但答案似乎表明,通过使用局部视图,可以有多个模型。是的,局部视图可以有自己的模型。调用局部视图不会重新加载主页面,因此您可以在页面内部执行操作,而无需刷新/提交主页面。