2012-01-09 68 views
0

我有許多屬於一個組的項目。當您查看一個項目時,您將在該頁面的頂部框組件中看到關於它所屬的組的一些信息。這些項目有多個視圖(簡單細節,全部細節等),這個頂層組件將顯示在每個視圖上。實施部分視圖

我能想到的實現這一點的唯一方法如下:

  1. 與項目信息
  2. 創建一個包含信息來填充頂部部件的GroupViewModel以及一個列表創建ItemViewModel ItemViewModels。
  3. 爲頂級羣組組件創建部分視圖。
  4. 將GroupViewModel傳遞給每個項目視圖頁面。

我不太喜歡這種方法,因爲它會導致GroupViewModel成爲傳遞到所有Item視圖的「超級」ViewModel。我會喜歡只有ItemViewModels被傳遞給Item視圖,但是對於Item Views包含這個頂層組件,乾淨的方式是什麼?

(邊問:就是可以設置的URL結構爲 「/組/ 12 /項/ 43」?)

回答

2

我覺得你應該視圖模型類似

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) 
}