【问题标题】:Implementing Partial Views实现局部视图
【发布时间】:2012-01-09 21:09:15
【问题描述】:

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

我能想到的唯一方法是:

  1. 使用项目信息创建一个 ItemViewModel
  2. 创建一个 GroupViewModel,其中包含用于填充顶部组件的信息以及 ItemViewModel 列表。
  3. 为顶部 Group 组件创建局部视图。
  4. 将 GroupViewModel 传递给每个项目视图页面。

我不太喜欢这种方法,因为它会导致 GroupViewModel 成为传递给所有 Item 视图的“超级”ViewModel。我有点希望只将 ItemViewModels 传递给 Item 视图,但是 Item Views 包含这个顶级组件的干净方法是什么?

(附带问题:是否可以将 url 结构设置为“/Group/12/Item/43”??)

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-13
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2016-06-22
      相关资源
      最近更新 更多