实现部分视图

时间:2012-01-09 21:09:15

标签: c# .net asp.net-mvc asp.net-mvc-3

我有一些属于某个组的项目。当您查看项目时,您将在页面的顶部框组件中看到有关其所属组的一些信息。这些项目有许多视图(简单详细信息,完整详细信息等),这个顶部组件将显示在每个视图上。

我能想到的唯一方法是:

  1. 使用项目信息
  2. 创建ItemViewModel
  3. 创建一个GroupViewModel,其中包含用于填充顶部组件的信息以及ItemViewModel列表。
  4. 为顶部组件创建部分视图。
  5. 将GroupViewModel传递给每个项目视图页面。
  6. 我真的不喜欢这种方法,因为它导致GroupViewModel成为传递给所有Item视图的“超级”ViewModel。我有点像只有ItemViewModels传递Item视图,但是什么是项目视图包含这个顶级组件的干净方式?

    (旁边问题:是否可以将网址结构设置为“/ Group / 12 / Item / 43”??)

1 个答案:

答案 0 :(得分:2)

我认为你的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)
}