实施局部视图
本文关键字:视图 施局部 | 更新日期: 2023-09-27 18:20:01
我有许多属于一个组的Item。查看项目时,您将在页面的顶部框组件中看到有关该项目所属组的一些信息。这些项目有许多视图("简单详细信息"、"完整详细信息"等),每个视图上都会显示此顶部组件。
我能想到的实现这一点的唯一方法是:
- 使用项目信息创建ItemViewModel
- 创建一个GroupViewModel,其中包含用于填充顶部组件的信息以及ItemViewModels列表
- 为顶部的"组"构件创建局部视图
- 将GroupViewModel传递到每个项目视图页面
我真的不喜欢这种方法,因为它会导致GroupViewModel成为一个传递给所有Item视图的"超级"ViewModel。我有点希望只向ItemViewModels传递Item视图,但对于Item视图来说,包含这个顶部组件的干净方式是什么?
(附带问题:是否可以将url结构设置为"/Group/12/Item/43"?)
我认为您的ViewModel应该类似
public class SomeViewModel
{
public Group Group { get; set; }
public List<Item> Items { get; set; }
}
当你的视图看起来像这样时:
<!-- top section start -->
@Html.Partial("Details", Model.Group)
<!-- top section end -->
@foreach (Item item in Items)
{
@Html.DisplayFor(item)
}