2009-05-25 31 views
1

Ich habe eine kleine Frage an die Gemeinschaft. Ermöglicht es ASP.NET MVC, eine Aktion eines anderen Controllers ohne RedirectToAction() Methode und ohne Erstellung einer Instanz dieses Controllers auszuführen?Aktion ohne Weiterleitung ausführen

Antwort

2

Dies ist unmöglich. Für eine Instanzmethode, die ausgeführt werden soll, muss eine Instanz ausgeführt werden. Aktionsmethoden sind einfach wie alle anderen Methoden. Sie benötigen also immer eine Instanz, um die Methode aufzurufen.

+0

stimme mit Ihnen überein, danke. – iburlakov

0

Meinst du, du möchtest eine Ansicht, die nichts zurückgibt. Keine Sicht. Keine Nadda?

Wenn ja, kann u eine EmptyResultViewresult Klasse zurückgeben ...

HTH.

0

Sie können es durch die Reflection Technik anrufen, aber es ist Nicht empfohlen. Kurz, weil es nicht im Kontext von Anfrage/Antwort/Controller ist.
Persönlich bevorzuge ich eine internal static method(bla bla){...} und nennen Sie es, wo immer ich will.
Aber wenn Sie die

ohne Erzeugung einer Instanz dieses

Controller fallen

Klausel, dann können Sie this methodology verwenden. Aber wie es erklärt, ist es Nicht zu empfehlen. Folgendes wird zusammengefasst:

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