È questo il modo corretto di implementare la struttura del sito Web MVC .NET?

2

Recentemente ho visto una soluzione .NET MVC in cui il markup nelle visualizzazioni .aspx che sembrano avere un controller come modello, ovvero il controller sembra fornire i dati per la vista e .ascx user i controlli che contengono utilizzano un modello separato. Sono nuovo di MVC e volevo scoprire alcune cose su cui non sono chiaro.

Un esempio di come il codice è implementato:

UserDetails.aspx view ha markup che mostra che sta usando UserDetailsController.cs come modello. Contiene RenderPartial("User_Details.ascx", UserDetailsModel) e passa il UserDetailsModel .

Questo è il modo standard / corretto di implementare MVC? O solo un modo per implementarlo?

Ho anche notato che le classi utilizzate come Modelli sembrano essere classi di servizio che hanno attributi [DataMember] e [DataContract] sul nome e proprietà della classe - qual è il vantaggio di questa implementazione?

    
posta Theomax 09.09.2012 - 21:17
fonte

2 risposte

3

Sulla base della descrizione limitata finora, la risposta migliore che posso dare è "forse".

Ecco la mia opinione parziale su MVC, che generalmente si allinea con le acquisizioni degli altri. Ma ci sono sempre le ossa della contesa. Raccomanderei gli articoli Martin Fowler come un buon punto di partenza con MVC e le altre varianti MVx.

La vista non dovrebbe essere a conoscenza del modello; sa solo cosa lo alimenta il controllore.
Il Controller è più che benvenuto per passare direttamente una struttura dati dal Modello alla Vista. Ma il Controller è agganciato per mantenere quel contratto con la View se il Modello dovesse cambiare.

In altre parole, il controllore può recuperare un elenco di utenti dal modello e quindi passare tale elenco direttamente alla vista. In questo caso, le strutture sono allineate magicamente e tutti e tre i livelli sono in grado di utilizzare la stessa (o simile) struttura.

Se la Vista richiede ulteriori dettagli in seguito, il Controller sarà responsabile dell'accesso al Modello, se necessario, al fine di fornire tali dettagli aggiuntivi alla Vista.

    
risposta data 10.09.2012 - 16:58
fonte
0

Il concetto di base di MVC è:

Modello: questo è il modello di dominio della tua applicazione. Visualizza: questa è l'interfaccia utente della tua applicazione. (non dovresti mettere alcuna logica qui). Controller: questo è responsabile per l'interazione con l'utente. Estrarre i dati da "Modello" e selezionare "Visualizza" per l'interfaccia utente.

Per ulteriori dettagli: link .

È possibile visualizzare la struttura di base della cartella quando si crea una nuova applicazione ASP.NET MVC in Visual Studio. Qui i controllori sono tenuti in una cartella, i modelli sono un altro e c'è una cartella di visualizzazione in cui puoi trovare molte sottocartelle con lo stesso nome dei controller. Sotto questa cartella puoi trovare le viste che il controller perticulare userà. C'è una cartella 'condivisa', sotto essa ha le viste che possono essere utilizzabili per tutti i controller. Microsoft crea una convenzione sul concetto di configurazione in ASP.NET MVC. Questo è il motivo per cui la convenzione di denominazione e la struttura delle cartelle sono essenziali.

Gli attributi [DataMember] e [DataContract] sono correlati a WCF.

Spero che questo aiuto.

    
risposta data 25.04.2013 - 15:56
fonte

Leggi altre domande sui tag