Est-il possible pour un automate ASP.NET MVC de créer une nouvelle instance d'un contrôleur différent et de déléguer efficacement la responsabilité à cet égard?Contrôleur d'instanciation .NET MVC à l'intérieur d'un autre contrôleur
Disons par exemple que j'ai deux contrôleurs dans le répertoire/contrôleurs/répertoire:
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);
}
}
... et une vue appelée Vues/Autre/ShowNumberOfThings.aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<int>" %>
Number of things: <%= Model.ToString() %>
Lorsque je frappe l'url:
Je veux être présent ed avec une page qui se lit comme suit:
« Nombre de choses: 100 »
Je voudrais être en mesure de maintenir les données temporaires entre redirections du contrôleur sans être forcé d'utiliser l'objet de la session (TempData [ « »] utilisations l'objet de session pour les redirections de contrôleur croisé). Mon cas réel a un objet complexe qui doit passer (pas seulement un int), donc l'utilisation d'un URL/Cookie est hors de question, et l'état de la session est un non-non. Dans WebForms, nous pourrions au moins utiliser Server.Transfer et conserver n'importe quel état dans la collection HttpContext.Items. Dans MVC, la seule option que je peux voir est d'appeler la méthode du contrôleur en passant directement dans les arguments requis.
À l'heure actuelle, il a du mal à essayer de résoudre le dossier de vue car le "contexte" est toujours en cours d'exécution sous le HomeController.
Je devine où je vais avec ceci essaye d'inciter ASP.NET MVC à agir comme un FrontContoller.
Des idées?
EDIT
En fin de compte nous avons dû serialise tout en une session et utiliser. Dommage, mais j'ai entendu dire que MVC2 supportera la sérialisation des objets dans un ViewState.
J'ai fait quelque chose de très similaire à cela qui a bien fonctionné - le modèle devrait être passé correctement, alors qu'est-ce que c'est que le contexte pose problème? – Keith