0
我有一個貨架集合,每個貨架都有一個產品集合。爲了優化重用,我創建了一個局部視圖ProductList.ascx,這個視圖在循環遍歷Shelves列表時調用。在部分視圖中,我希望爲每種產品都有一個添加鏈接,並且需要使用貨架ID才能這樣做。由於部分視圖是產品的集合,並且可能在該貨架上沒有任何產品,因此如何將包含貨架ID的部分的添加鏈接包含在內?渲染部分視圖數據父/子
父視圖:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<ShelfDetail>>" %>
<% foreach (ShelfDetail shelf in Model)
{ %>
<%= Html.Encode(shelf.Name) %>
<%= Html.ActionLink("Delete Shelf", "Delete", "Shelf", new { Id = shelf.Id }, null)%>
<%= Html.ActionLink("Edit Shelf", "Edit", "Shelf", new { Id = shelf.Id }, null) %>
<% Html.RenderPartial("SoupList", shelf.Soups); %>
<% Html.RenderPartial("PieList", shelf.Pies); %>
<p><%= Html.Encode(shelf.Description) %></p>
<% } %>
<% } %>
子湯景(試圖添加路由值在那裏說: 「有必要架ID HERE」):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<SoupList>>" %>
Doors: <%= Html.ActionLink("Add Soup", "Add", "Soup", NEED SHELF ID HERE, null)%>
<% foreach (SoupList soup in Model)
{ %>
<%= Html.Encode(soup.Flavor) %>
<% } %>
謝謝克雷格。在這樣做時,我不必在Shelf視圖中遍歷它們,這使我無法將該邏輯移動到部分控制中?我可能會誤解這一點。現在,SoupList是一個演示對象,它包含一個Soup對象的扁平視圖,它包含一個ShelfId。我現在無法按照我現在閱讀的方式來解決這個問題。 – 2009-11-11 18:41:49
是的,這是正確的瑞安。您必須對視圖模型進行一些轉換,因此它們不是IEnumerable而是它們可能與ShelfProductList類似,其中id可以是集合的一部分。 –
2009-11-11 18:52:32
感謝男士們,感謝幫助。 – 2009-11-11 19:05:39