Questo è più un tipo di domanda "come lo faresti".
L'applicazione su cui sto lavorando è un'app MV.NET di ASP.NET che utilizza la sintassi del rasoio.
Ho un bel modello di dominio che ha alcune classi polimorfiche, fantastiche con cui lavorare nel codice, ma ho alcune domande riguardo il front-end MVC.
Le viste sono facili da costruire per le classi normali, ma quando si tratta di quelle polimorfiche sono bloccato nel decidere come implementarle.
L'unica (brutta) opzione è quella di costruire una pagina che gestisce il tipo di base (ad esempio IContract) e ha una serie di istruzioni if per verificare se abbiamo passato in un'istanza IServiceContract o ISupplyContract. Non bello e molto cattivo da mantenere.
L'altra opzione è di costruire una vista per ciascuna di queste classi child di IContract, rompendo completamente i principi di DRY. Non mi piace farlo per ovvi motivi.
Un'altra opzione (anche non eccezionale) è dividere la vista in blocchi con partial e creare viste parziali per ogni tipo di bambino che viene caricato nella vista principale per il tipo di base, quindi decidere di mostrare o nascondere il partial in una singola affermazione nel parziale. Anche disordinato.
Ho anche pensato di creare una pagina master con sezioni per i campi che si verificano solo nelle sottoclassi e per creare viste per ciascuna sottoclasse che fa riferimento alla pagina principale. Questa sembra la soluzione meno problematica? Consentirà una manutenzione abbastanza semplice e non implica la duplicazione del codice.
Quali sono i tuoi pensieri? Mi manca qualcosa di ovvio che renderà le nostre vite più facili? Suggerimenti?