2012-10-05 4 views

Antwort

6

Ich denke, die am besten geeignete Weg, um dies in MVC zu tun ist mit filters
MSDN eine gute Beschreibung von ihnen bietet, und es gibt Dutzende von Artikeln und explanatins über sie im Netz, wie this one

EDIT This Beispiel ist noch besser: Es bietet einen einfachen Aktionsfilter, der dann in global.asax registriert und bei jeder Anfrage ausgeführt wird, bevor die eigentliche Aktion im relevanten Controller ausgeführt wird. Mit einem solchen Konzept können Sie auf das Anforderungsobjekt zugreifen und ändern, was Sie wollen, bevor der eigentliche Controller ausgeführt wird.

1

Sie könnten den Code in den Konstruktor des Controllers einfügen. So:

public class FooController : Controller 
{ 
    public FooController() 
    { 
     doThings(); 
    } 
+0

Von jedem Controller? Ich möchte, dass dies bei jeder Seitenladung in meiner Anwendung aufgerufen wird. – Curt

+0

Was ist, wenn ich 100 Controller habe? Ich muss das jedes Mal hinzufügen. Außerdem müsste ich daran denken, dies mit jedem neuen Controller hinzuzufügen. Ich denke nicht, dass dies sehr skalierbar ist. – Curt

+0

Ja, Sie haben Recht. Entschuldigung, ich habe nicht verstanden, dass Sie das bei jeder Ansicht in Ihrer Anwendung haben wollten. Die Antwort des Basis-Controllers sieht gut aus. – David

9

Sie eine Klasse Basis-Controller wie

public class MyController: BaseController 

auch ich gefunden habe, die Base

public class BaseController : Controller 
{ 

    public BaseController() 
    { 
     // your code here 
    } 
} 

und lassen jeden neuen Controller von Ihnen impelement die Basis-Controller erstellen konnte sehr nützlich, um andere Funktionen zu speichern Ich brauche viel in anderen Controllern

Verwandte Themen