Gibt es eine Möglichkeit, dieselben Daten für jede ASP.Net MVC-Aktion in einem bestimmten Controller zurückzugeben?

8

Ich habe einen Controller mit mehreren Aktionen, die alle einen Satz von Daten zurückgeben, der unter allen gleich ist. Anstatt die Daten dem ViewBag bei jeder einzelnen Aktion hinzuzufügen, gibt es ein Muster oder Attribut oder etwas, das ich aufrufen oder einstellen kann, um für jede Aktion die gleichen Daten zu den viewdata oder viewbag hinzuzufügen, oder eine andere bessere Möglichkeit, die get gleiche Daten in jeder Ansicht, ohne die Methode bei jeder Aktion aufzurufen?

    
Christopher Simpson 26.03.2011, 02:23
quelle

2 Antworten

14

Was Sie suchen ist ein ActionFilter , dann überschreiben Sie OnActionExecuting . Hier ist einer meiner ActionFilter, der den aktuell angemeldeten Benutzer an den ViewBag anhängt:

%Vor%

Dann müssen Sie das Attribut anwenden, wo immer Sie möchten. Wenn Sie es an eine Aktion anhängen, erhält diese Aktion den hinzugefügten Eintrag im ViewBag. Wenn Sie es an einen Controller anhängen, erhalten alle seine Aktionen es. Wenn Sie es an einen Basis-Controller anhängen und von allen Controllern unterklassifiziert werden, erhalten Sie alle Ihre Aktionen in Ihrer gesamten App

%Vor%     
Matt Greer 26.03.2011, 02:33
quelle
3

Eine praktikable Lösung, die Sie über den Konstruktor Ihres Controllers zuweisen können

%Vor%

Es wird für alle Aktionen im HomeController verfügbar sein

    
Jith 26.03.2011 02:35
quelle

Tags und Links