背景:
我试图制作动态生成的资料单,其中每个资料单有多个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
可我也很想在听取任何人的意见的最佳方式关于这个初始设计的问题。