Frage

Also beginne ich mit einem ASP.NET MVC Projekt und obwohl die Erfahrung insgesamt gut war, bin ich mit dem Spaghetti-Durcheinander, zu dem meine Controller geworden sind, nicht ganz so zufrieden.Ich habe mich online umgesehen (CodeCampServer usw.) und sie scheinen alle unter dem gleichen Problem zu leiden, dass Controller-Methoden ziemlich konsequent gegen SRP (Prinzip der Einzelverantwortung) verstoßen – beispielsweise eine Controller-Methode, die einfach die Ansicht rendert, wenn die Anforderung vorhanden ist A GET aber aktualisiert die model wenn es ein ist POST.Jetzt habe ich Controller-Methoden, die für mehrere logische Routen in der gesamten Anwendung verantwortlich sind – sagen wir, sie prüfen, welche button auf das Formular geklickt wurde und sich entsprechend verhält.Ich könnte mit JavaScript jeden Button-Klick auf eine andere Formularaktion umleiten, aber da fühlt sich auch etwas nicht richtig an ...Das andere große Problem ist die Verbreitung von Magie strings - ViewData["foo"] = blah; Lange Rede, kurzer Sinn: Wie geht es euch? structure dein controller Logik?Ein riesiges Modellobjekt pro Ansicht?Viele kleine controller methods Und JavaScript ist der Router?Mein Ziel ist wartbarer Code – je mehr Funktionen sich häufen, desto langsamer rutsche ich den rutschigen Abhang hinunter ...

War es hilfreich?

Lösung

ASP.NET Preview 5 (verfügbar am CodePlex) hat darauf eine Antwort:das [AcceptVerbs]-Attribut.Phil Haack hat einen Blogeintrag Diskussion darüber, wie es verwendet wird.

Was die Schlüsselfrage zur magischen Ansicht von Daten betrifft, handelt es sich um ein interessantes Problem.Wenn Sie sich eine Ansicht als eine Ansammlung halbunabhängiger Komponenten vorstellen (insbesondere angesichts der neuen Teilansichtsunterstützung), ist die Erstellung eines stark typisierten Modells weniger ideal, da die verschiedenen Teile der Ansicht relativ unabhängig davon sein sollten einander.

Andere Tipps

Wie gehen verschiedene Personen mit diesem Problem um?Ich weiß, dass ich gerade ein paar Stunden damit verbracht habe, das Durcheinander im Modellordner durchzusehen.Ich finde, dass das Erstellen von Ordnern hilfreich ist, um die visuelle Unordnung zu reduzieren, und auch die Verwendung passender Namespaces hilft sehr.

Aber meine Controller sind im Moment Monolithen.Das Problem ist, dass ich mich bis zu diesem Punkt des Projekts auf das Lernen konzentriert habe (es gibt auch noch viel zu klären).

Ich komme jetzt gut mit MVC zurecht, daher ist es an der Zeit, die Komplexität zu überprüfen und darüber nachzudenken, die Controller in besser benannte und sauberere Funktionen umzuwandeln.

Teilen andere Leute ihre Controller in Untercontroller auf?(Wenn es so etwas gibt)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top