Domanda

Quindi mi sto imbarcando in un ASP.NET MVC progetto e anche se l'esperienza nel complesso è stata buona, non sono altrettanto soddisfatto del pasticcio di spaghetti che sono diventati i miei controller.Mi sono guardato intorno online (CodeCampServer, ecc...) e sembrano tutti soffrire dello stesso problema in cui i metodi del controller violano l'SRP (principio di responsabilità singola) in modo abbastanza coerente, come un metodo del controller che esegue semplicemente il rendering della vista se la richiesta è UN GET ma aggiorna il model se è un POST.Ora ho metodi di controllo responsabili di più percorsi logici in tutta l'applicazione: diciamo che controlla quali button è stato cliccato sul modulo e agisce di conseguenza.Potrei reindirizzare ogni clic del pulsante a un'azione diversa del modulo utilizzando JavaScript, ma qualcosa non va bene neanche lì...L’altro grande problema è la proliferazione della magia strings - ViewData["foo"] = blah; Per farla breve, come state, ragazzi? structure tuo controller logica?Un oggetto modello gigante per vista?Molto poco controller methods E JavaScript è il router?Il mio obiettivo è un codice manutenibile: man mano che le funzionalità si accumulano, sto iniziando a scivolare lungo quel pendio scivoloso...

È stato utile?

Soluzione

ASP.NET Anteprima 5 (disponibile su CodePlex) ha una risposta per questo:l'attributo [AcceptVerbs].Phil Haack ha una post sul blog discussione su come viene utilizzato.

Per quanto riguarda la domanda chiave magica dei dati di visualizzazione, è un problema interessante.Se si pensa a una vista come un insieme di componenti semi-indipendenti (soprattutto alla luce del nuovo supporto per la vista parziale), allora creare un modello fortemente tipizzato diventa meno ideale, poiché le diverse parti della vista dovrebbero essere relativamente indipendenti da l'un l'altro.

Altri suggerimenti

In che modo le diverse persone gestiscono questo problema?So di aver passato un paio d'ore a rivedere il caos all'interno della cartella del modello.Trovo che la creazione di cartelle sia utile per ridurre la confusione visiva, anche l'uso degli spazi dei nomi corrispondenti aiuta molto.

Ma i miei controller al momento sono monoliti.il problema è che fino a questo punto del progetto mi sono concentrato sull'apprendimento (ancora molto da risolvere).

Ora sto acquisendo una buona padronanza di MVC, quindi è tempo di rivedere la complessità e prendere in considerazione la modifica dei controller in funzioni con nomi migliori e più pulite.

Altre persone stanno suddividendo i loro controller in sub controller?(Se esiste una cosa del genere)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top