Quale layer dovrebbe ordinare le colonne mostrate all'utente quando si usa MVC?

2

Supponiamo di voler eseguire il rendering di una tabella con cinque colonne, ma si desidera che l'ordine delle colonne sia diverso in base ad alcuni parametri specifici. Questo sarebbe molto facile da realizzare se il modello imposta l'ordine. La vista può quindi semplicemente utilizzare un loop e creare la tabella di conseguenza.

Tuttavia, a meno che non abbia frainteso le cose, vogliamo lasciare che la vista gestisca il rendering delle cose (anche se immagino possa esserci un'area grigia qui coinvolta in termini di ciò che la vista "dovrebbe decidere come eseguire il rendering")? È anche brutto lasciare che il modello imposti la formattazione / l'ordine, ma forse questa è un'altra cosa che potrei fraintendere?

Se si suppone che la vista abbia a che fare con l'ordine delle colonne, qual è un buon modo per ottenerla (leggi: dovendo usare molte if-statement e altro codice brutto nella vista)?

    
posta user1323245 14.01.2014 - 13:33
fonte

1 risposta

2

Dividi (concettualmente) la tua vista in ViewView e ViewModel. Nel modello di vista si avranno cose come l'ordine delle colonne, il numero di righe sulla pagina, la pagina corrente, se si è in modalità di modifica. Semplicemente cose che è necessario memorizzare, ma non ha senso memorizzarle nel modello (la visualizzazione diversa non le utilizzerà).

In quale forma il modello di visualizzazione viene archiviato dipende dalla vista. Può essere nella variabile scope della sessione sul server (nell'applicazione Web), nel campo nascosto (nell'applicazione Web), sul dispositivo mobile (nell'applicazione mobile che comunica con il server, quindi il modello stesso è sul server), solo in classi diverse (in modalità standalone app desktop / mobile).

    
risposta data 14.01.2014 - 13:45
fonte

Leggi altre domande sui tag