2009-05-25 8 views
1

J'ai une petite question à poser à la communauté. ASP.NET MVC permet-il d'exécuter une action d'un autre contrôleur sans la méthode RedirectToAction() et sans création d'une instance de ce contrôleur?Exécuter l'action sans la rediriger

Répondre

2

Ceci est impossible. Pour qu'une méthode d'instance s'exécute, il doit y avoir une instance à exécuter. Les méthodes d'action sont simplement des méthodes comme toutes les autres méthodes, donc vous avez toujours besoin d'une instance pour appeler la méthode.

+0

d'accord avec vous, merci. – iburlakov

0

Voulez-vous dire que vous souhaitez avoir une vue qui ne renvoie rien. Aucune vue Pas de nadda?

Si oui, u peut retourner une classe EmptyResultViewResult ...

HTH.

0

Vous pouvez l'appeler via la technique Reflection, mais c'est Non recommandé. Peu de temps parce que ce n'est pas dans le contexte requête/réponse/contrôleur.
Personnellement, je préfère avoir un internal static method(bla bla){...} et l'appeler où je veux.
Mais si vous laissez tomber le

sans création d'une instance de ce contrôleur

article, vous pouvez ensuite utiliser this methodology. Mais comme il l'explique, c'est Non recommandé aussi. ce qui suit est résumée:

var controller = new FooController(); 
controller.ControllerContext = new ControllerContext(this.ControllerContext.RequestContext, controller); 
var jsonResult = controller.BlaMethod(someInputParams); 
Questions connexes