How to make data available when one Controller's View calls another Controller's View?

How to make data available when one Controller's View calls another Controller's View?

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.

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. mvc user login remembering problem


Jquery datepicker showing previous date in MVC
I wouldn't use query strings like that. window.location.href duplicate url addressI would extend the model object passed to FactsheetController's Index to include the data required in your another partial views and then pass this to the actions with the RenderAction method. mvc c# javascript web.configSo ConfiguredFactsheetPanel would be extended to either contain, or be replaced by a type this contained, the Fund object you require in your partial views.. How do I specify error member key in ASP.NET MVC CustomValidation? I suspect this the objects this you are using in your view currently are entities driven by your persistence technology such as NHibernate or Entity Framework. MVC HandleError attribute not working on ControllerIf this is the case you probably won't want to change your entity definitions to satisfy your views and instead create view models.. What is the elegant solution for unrelated views in MVC web frameworks?
Setting width and height of modal window from JavaScript/JQuery to ASP.NET MVC inline code

61 out of 100 based on 46 user ratings 321 reviews