我有一个非常标准的场景,我有一个模型,在这种情况下是一个产品。
产品型号有一系列属性,例如我想在视图上显示的价格,desc等。
我的工作正常。
该产品有一个附件对象列表,可以在视图中显示,并使用户能够输入该附件的数量。
当用户点击添加到购物篮时,我实际上只需要配件列表和母产品的ID。
我是否应该创建一个包含我需要的所有产品信息的视图模型,或者我只是将我的视图传递给产品,然后在提交时只获取函数签名中需要的几个字段的视图模型?
如果您没有猜到,我是mvc的新手!!我正在使用MVC 3。
答案 0 :(得分:1)
学术方法是用视图中所需的数据创建一个单独的ViewModel类。
但是当你对忽略课堂上额外的字段感到满意时,我认为在视图中使用你的产品模型类是绝对可以的。
答案 1 :(得分:1)
使用单独的视图模型是更好的做法,因为这意味着您可以在产品之外添加可能相关的额外信息,例如购物篮和用户信息。如果产品上有许多字段,则可以使用Automapper获取相关字段并将它们映射到视图模型。此外,您可以根据需要展平模型,并进行服务器端查询,以查看所有模型的相关项目,例如类别信息等。
在这里看一下Automapper:
http://lostechies.com/jimmybogard/2009/01/23/automapper-the-object-object-mapper/
一旦开始使用它,你就不会回头了。