È possibile che un controller ASP.NET MVC crei una nuova istanza di un controller diverso e deleghi effettivamente la resonsabilità a tale controller?.NET MVC controller instantiate all'interno di un altro controller
Diciamo ad esempio che ho due controllori in/directory/Controller:
public class HomeController : Controller
{
public ActionResult Index()
{
var otherController = new OtherController();
return otherController.ShowNumberOfThings(100);
}
}
public class OtherController : Controller
{
public ActionResult ShowNumberOfThings(int index)
{
return View(index);
}
}
... e una visualizzazione denominata Vista/Altro/ShowNumberOfThings.aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<int>" %>
Number of things: <%= Model.ToString() %>
Quando mi ha colpito l'url:
voglio essere presente Ed con una pagina che recita:
"Numero di cose: 100"
Mi piacerebbe essere in grado di persistere dati temporanei tra i reindirizzamenti del controller senza essere costretti ad utilizzare l'oggetto di sessione (TempData [ ""] usi l'oggetto della sessione per i reindirizzamenti del controllore incrociato). Il mio caso reale ha un oggetto complesso che ha bisogno di passare (non solo un int), quindi l'utilizzo di un URL/cookie è fuori questione e lo stato della sessione è un no-no.
In WebForms almeno potremmo utilizzare Server.Transfer e mantenere qualsiasi stato nella raccolta HttpContext.Items. In MVC l'unica opzione che posso vedere è chiamare il metodo controller passando direttamente gli argomenti richiesti.
Al momento non è possibile provare a risolvere la cartella di visualizzazione poiché il "contesto" è ancora in esecuzione in HomeController.
Indovino dove sto andando con questo sta cercando di clandare ASP.NET MVC a comportarsi come un FrontContoller.
Qualche idea?
EDIT
Alla fine abbiamo dovuto puntate tutto in una sessione e l'uso che. Un peccato, ma ho sentito che MVC2 supporterà la serializzazione di oggetti in un ViewState.
Ho fatto qualcosa di molto simile a questo che ha funzionato bene - il modello dovrebbe essere passato correttamente, quindi che cos'è il contesto che è un problema? – Keith