¿Es posible que un controlador MVC de ASP.NET cree una nueva instancia de un controlador diferente y delegue efectivamente la resignificación a eso?.Controlador de instancias de .NET MVC dentro de otro controlador
Digamos por ejemplo que tengo dos controladores en el/Controladores/directorio:
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);
}
}
... y una vista llamada Vistas/Otros/ShowNumberOfThings.aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<int>" %>
Number of things: <%= Model.ToString() %>
Cuando golpeé la url:
quiero estar presente ed con una página que dice:
"serie de cosas: 100"
Me gustaría ser capaz de persistir los datos temporales entre cambios de dirección del controlador sin estar obligado a utilizar el objeto de sesión (TempData [ ""] usos el objeto de sesión para las redirecciones de controlador cruzado). Mi caso del mundo real tiene un objeto complejo que necesita pasar (no solo un int), por lo que no se puede usar una URL/Cookie, y el estado de la sesión es un no-no.
En WebForms al menos podríamos usar Server.Transfer y mantener cualquier estado en la colección HttpContext.Items. En MVC, la única opción que puedo ver es llamar al método del controlador que pasa directamente los argumentos requeridos.
Por el momento, tiene problemas para tratar de resolver la carpeta de visualización ya que el "contexto" todavía se está ejecutando bajo HomeController.
Supongo que a dónde voy con esto es tratar de hacer que ASP.NET MVC actúe como un FrontContoller.
¿Alguna idea?
EDITAR
Al final tuvimos que serializar todo en una sesión y usar eso. Una pena, pero he oído que MVC2 admitirá objetos de serialización en un ViewState.
He hecho algo muy similar a esto que funcionó bien: el modelo se debe aprobar correctamente, entonces, ¿qué problema hay en el contexto? – Keith