In MVC, devo accedere alla vista o ricevere parametri?

1

Ad esempio, ho un'interfaccia utente con un pulsante "Ottieni elementi" e un campo di testo "Ordine". Quindi il mio pulsante recupererà tutti gli articoli dall'ordine scritto nel campo di testo. Come dovrebbe il mio controllore conoscere l'ordine? Dovrebbe essere

public void GetItems(string order){

}

o

public void GetItems(){
    string order = View.Order
}

o forse nessuno dei due?

    
posta HDD 06.07.2016 - 13:12
fonte

2 risposte

5

Vorrei andare per l'opzione 1, dal momento che il tuo controller non ha bisogno di sapere della tua vista per fare le sue cose.

Se hai scelto l'opzione 2, il tuo controller deve conoscere la vista. Se ci sono modifiche ad esso, è necessario modificare anche il controller.

Un altro vantaggio potrebbe essere che tu possa facilmente cambiare interfaccia. Nella nuova interfaccia utente puoi chiamare il metodo nel tuo controller, senza dover cambiare il controller stesso. O forse vuoi andare senza interfaccia utente e utilizzare un servizio web per chiamare i tuoi metodi di controllo.

Quindi, per rispondere alla tua domanda: il tuo controller dovrebbe ricevere parametri, invece di accedere alla vista.

    
risposta data 06.07.2016 - 13:47
fonte
1

In realtà si riduce a, vuoi essere in grado di alterare l'ordine esternamente?

Quindi quello che intendo è; hai una pagina /MyController/orders . Di default questo è ordinato ASC . Se si desidera avere un collegamento (da qualche altra parte esterno o interno) che vada direttamente all'ordine non predefinito. Quindi inserisco questo parametro nell'azione come parametro (opzione 1), questo consente a te (oa chiunque altro) di chiamare /MyController/orders?order=desc .

Se questo non è necessario, nasconderei i dettagli di implementazione (più l'impianto si nasconde all'utente migliore, più le cose sembrano più ordinate) e l'opzione di selezione 2.

Non placcare il tuo codice in oro. È facile passare da uno all'altro in modo da soddisfare le tue esigenze attuali e non di più. Quindi se pensi che l'opzione 1 potrebbe essere necessaria in qualche punto scegli l'opzione 2. Puoi sempre modificare per includere l'opzione 1 quando e se ne hai bisogno in seguito.

    
risposta data 06.07.2016 - 15:35
fonte

Leggi altre domande sui tag