Procedure ottimali per la separazione di ASP.NET MVC Controller [closed]

-1

Sono molto nuovo in ASP.NET MVC e roba Web. Voglio sapere come dovrei separare la mia logica di pagina in diversi controller. Ad esempio, dovrei usare Home\BuyProduct o Product\Buy . Quando c'è un segno per spostare la logica sul nuovo controller separato? Dovrebbe essere un controller per pagina? Quali sono le regole di base?

    
posta Pavel Shchegolevatykh 28.09.2012 - 13:45
fonte

2 risposte

0

C'è un milione di modi per configurare qualsiasi cosa, ma ti dirò che sono nuovo di MVC (ma mi piace così tanto), tipicamente do imposta un'azione Controller per pagina " . Sono sicuro che è possibile astrarre questo in modo diverso come master MVC, ma per la mia prima app, c'è una correlazione tra una singola azione in un controller e una singola "pagina".

Per quanto riguarda la struttura intorno a casa || prodotto || acquista ecc., sto impostando il mio come

Home controller:

  • "http: // root /" = > home page

Controller prodotti:

  • "http: // root / products" = > elenco di tutti i prodotti o categorie di prodotti.
  • "http: // root / products / detail" = > Errore 404.
  • "http: // root / products / detail / 50" = > dettagli di un singolo prodotto con ID 50.
  • "http: // root / products / detail / 50 / add" = > aggiungi quel prodotto al carrello

Controller carrello:

  • "http: // root / shoppingcart" = > mostra i dettagli del carrello per l'utente corrente.
  • "http: // root / shoppingcart / checkout" = > mostra i dettagli del checkout.

Sto provando a seguire il modello "Fat ViewModel, Skinny Controller", quindi le azioni del mio controller sono solo di un paio di righe ciascuna. Inizializzano semplicemente Fat ViewModels ed eseguono 1-2 metodi su ciascun modello in base a ciò che deve essere fatto. I modelli contengono la maggior parte del codice.

E i widget che devono essere riutilizzati vengono trasformati nel proprio ViewModel e il genitore ViewModel ha un membro figlio della classe ViewModel riutilizzabile. ViewModel riutilizzabile ottiene una vista creata per esso e inserita nella cartella "Shared / EditorTemplates". Questa vista è chiamata dall'helper "EditorFor" che si trova nella vista principale di ViewModel.

    
risposta data 28.09.2012 - 16:50
fonte
1

Mi sembra che tu stia ancora osservandolo in termini di moduli web. Devi cambiare un po 'il tuo pensiero. Non pensarlo come "controller per pagina". Non ci sono "pagine", ci sono viste. Controllori del traffico diretto. Prendono in input dall'utente e decidono quale vista dovrebbe essere presentata. I modelli sono la tua logica aziendale ...

Come lo configuri è una funzione del sito che stai creando e una questione di preferenze personali. Ma la cosa più importante è che devi reindirizzare la tua mente dai moduli web.

    
risposta data 28.09.2012 - 15:43
fonte

Leggi altre domande sui tag