我对MVC还很陌生,但现在对这个模式感到很舒服,特别是发现ViewModels是控制器和视图之间的一座很好的桥梁。
然而,我现在不得不使用部分视图,这让我有点困惑。
要求
好的,在Wire框架中,我们有许多不同的页面,但它们共享一个公共的“网格”。
网格将是一个局部视图,并且将始终呈现/使用/操作相同类型的数据。
问题
因此,包含局部视图的主视图将具有不同的模型...那么我该如何处理局部视图中的模型呢?
是否所有使用该局部视图的视图模型都应该将该局部视图的嵌套模型作为属性?
这里的最佳实践是什么?
酷,干杯
发布于 2010-11-15 14:55:40
我发现当我把一个部分放在一起的时候,如果我考虑这个部分的模型会有很大的帮助。我几乎总是发现,如果我花点时间考虑这一点,部分代码的可重用性会增加很多。
Partial通常应该使用整个视图模型中数据的一些自然子集或变体。当您开始创建部分时,必须过多地考虑“我的部分应该使用什么模型”,这通常表明您可能应该创建不同的部分,而不是尝试重用一个。
如果你不得不为部分重建一个新的模型,我认为问题可能是你的整个视图的模型不能涵盖你所需要的一切。
话虽如此,但在许多情况下,我有一个部分,它使用的模型似乎与整个视图的模型是分开的。但大多数情况下,这些模型都是新的/空对象--而不是那些需要实例化并设置了属性等的对象(这通常发生在与Ajax相关的更新中使用的Partials中)
但请注意,MVC2也有这方面的功能;Html.RenderAction()允许您调用一个全新的操作(它将有自己的模型)并将其呈现在当前视图中。我尽量避免使用它,事实上,我自己...但对我来说,这比试图为部分数据“构建”一些新的模型,或者在当前的ViewModel中添加不自然的信息要好得多。
https://stackoverflow.com/questions/4181968
复制相似问题