Background:
I'm trying to produce dynamically generated Factsheets, where each Factsheet has a number of ContentAreas, and each ContentArea is configured to contain a number of Panels.
I have a FactsheetController, a ContentAreaController, a PanelController and individual panels such as NameAndDate and AssetPanel
FactsheetController produces an Index View which acts as a template to load ContentAreas in to.
This is FactsheetController's Index, where Model contains the configuration data defining which panels are associated with which 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>
When the Top action method gets called on ContentAreaController, it passes a list of PanelConfigurations associated with that ContentArea to its PartialView, which is defined as:
<% foreach (ConfiguredFactsheetPanel panel in Model)
{ %>
<% Html.RenderAction(panel.Name, "Panel", panel); %>
<% } %>
This PartialView renders then renders each panel that it is configured to show.
When I'm loading the FactsheetController I need an instance of a Fund object to know which ContentAreas are associated with that particular Factsheet, so I create one based on QueryString data. The thing is, I also need that Fund object in the PanelController because the Fund object contains the data I need to display. That QueryString data doesn't exist in the PanelController, because it only existed in the URL that called FactsheetController.
question:
So my question is, what's the best way for me to make the Fund object I create in FactsheetController to be available in the PanelController
I'd also be interested in hearing anyone's opinion on issues with this initial design.