在我的MVC项目中,我需要动态更改特定部分视图的呈现方式。我知道一个选项是在父视图中做出决定(通过某种条件),然后渲染父部分视图。
但是我根本不喜欢视图中的逻辑。此外,这对于将来的更改也是不可扩展的(例如,添加新的部分视图也需要在父视图中进行更改)。因此,我最终得到的视图模型包含定义要渲染的局部视图名称的属性。所以剃刀代码看起来像这样:
@Html.Partial(Model.ChildViewName, Model.Child);
所有决策逻辑都在工厂的后端代码中完成,该代码生成视图模型。这非常灵活且可扩展。但是我不喜欢模型和视图之间的耦合,因为我认为视图模型应该只是数据和视图的包络应该只显示它们。所以我想知道是否有更好或更优雅的方法来处理这个问题。