Ich glaube, ich bin verwirrt mit dem Job eines Controllers in MVC.ASP.NET MVC - Job von Controllern
Ich habe einen Dienst, der fünf Funktionen aussetzt:
- Liste Pakete in der Warteschlange
- get Paket
- löschen Paket
- akzeptieren Paket
- verweigern Paket
Meine Der ASP.NET MVC-Controller ist von diesem Dienst abhängig und ca In der Regel führen Sie einen Serviceaufruf für eine Aktion aus. Ich bin soweit glücklich.
Der zweite Teil erstellt dann das ViewModel-Ergebnis. Wenn ich dies innerhalb des Controllers mache, hat der Controller nun eine explodierende Abhängigkeitsliste - jede hinzugefügte Aktion erhöht die Abhängigkeiten, um das View-Modell aufzubauen, und diese werden alle vom Controller geerbt. Ich mag das nicht sehr. Ich baue diesen Controller, der von N verschiedenen View-Modell-Buildern abhängig ist, aber nur einen von ihnen pro Anfrage verwendet.
Also dachte ich daran, all das herauszuziehen und für jedes View-Modell spezielle Action-Filter anzuwenden. Ich habe das noch nicht gemacht, aber es scheint in Ordnung zu sein.
Die Frage, die dies für mich aufwirft, ist: Was ist die Verantwortung des Controllers? Wenn ich das Modell des Ansichtsmodells in Filter ziehe, tut mein Controller wenig mehr, als eine Route einen Service-Aufruf ausführen zu lassen (und ein Filter-Plugin zur Verfügung zu stellen). Wenn ich stattdessen meinen Controller für die Erstellung jedes Ansichtsmodells verantwortlich mache, wird es ein Chaos.
Es scheint, als ob ich fast eine Aktion pro Anfrage instanziieren möchte, keinen Controller, und ich missbrauche nur Filter, um das zu verstehen?
Diese Frage benötigt einige Codebeispiele. –