背景:
我試圖製作動態生成的資料單,其中每個資料單有多個ContentAreas,每個ContentArea配置爲包含多個Panels。如何在一個Controller的視圖調用另一個Controller的視圖時使數據可用?
我有一個FactsheetController
,一個ContentAreaController
,一個PanelController
和單獨的面板如NameAndDate和AssetPanel
FactsheetController
產生索引視圖充當模板加載ContentAreas中。
這是FactsheetController
的索引,其中Model
包含定義哪些面板與相關聯的配置數據,其ContentArea
:
<div id="divTop">
<% Html.RenderAction("Top", "ContentArea", Model); %>
</div>
<div id="divLeftColumn">
<% Html.RenderAction("Left", "ContentArea", Model); %>
</div>
<div id="divRightColumn">
<% Html.RenderAction("Right", "ContentArea", Model); %>
</div>
<div id="divBottom">
<% Html.RenderAction("Bottom", "ContentArea", Model); %>
</div>
當Top
動作方法被調用上ContentAreaController
,它將與該ContentArea
相關聯的PanelConfigurations
列表傳遞給其PartialView
,其定義爲:
<% foreach (ConfiguredFactsheetPanel panel in Model)
{ %>
<% Html.RenderAction(panel.Name, "Panel", panel); %>
<% } %>
這個PartialView
渲染然後呈現它配置顯示的每個面板。
當我加載FactsheetController
我需要一個Fund
對象的實例知道哪些ContentAreas
與該特定Factsheet
相關的,所以我創建基於QueryString
數據之一。事情是,我還需要在PanelController
中的Fund
對象,因爲Fund
對象包含我需要顯示的數據。 QueryString
數據不存在於PanelController
中,因爲它只存在於名爲FactsheetController
的URL中。
問題:
所以我的問題是,什麼是對我做出Fund
對象我在FactsheetController
創建要在PanelController
可我也很想在聽取任何人的意見的最佳方式關於這個初始設計的問題。