Strategia plug-in per sito MVC 5

5

Sto lavorando alla creazione di un sito multi-tenant, in cui gli utenti possono selezionare un tema. Ognuno di questi temi ha impostazioni diverse, quindi vorrei che qualcuno fosse in grado di selezionare un tema e poi, quando modificano le impostazioni del proprio sito, viene visualizzato un modulo per consentirlo. Sono sicuro che potrei farlo attraverso dati hard di codifica, ma sembrerebbe che sarebbe meglio usare i plugin per consentire l'aggiunta di nuovi plugin per i temi e rimuovere la necessità di stringhe magiche o dover creare una pagina delle impostazioni dinamica che legge cosa campi da visualizzare da un database. C'è abbondanza di documentazione su cose come MEF, ma ho bisogno di aiuto per capire come visualizzare una vista unica per ogni tema e quindi memorizzare i risultati. Qualsiasi aiuto o direzione sarebbe apprezzato.

    
posta Wade73 30.11.2016 - 20:44
fonte

1 risposta

1

Non hai bisogno di MEF o di plug-in. Usare il contenitore IoC sarà sufficiente per MVC5 Ho usato Windsor Castle con grande successo e ultimamente anche con Autofac.

Quindi hai tutti i controller prodotti dalla fabbrica e puoi avere il servizio per selezionare il layout nel controller. Con questo servizio si esegue una query sul database per le impostazioni utente e si imposta il modello / viewbag con le informazioni necessarie. Ho fatto qualcosa del genere per la versione silenziosa, in cui solo gli utenti pilota hanno ottenuto un nuovo aspetto e nuove funzionalità, ovvero il cambio di funzione.

Inoltre puoi cambiare il tuo layout usando "_ViewStart.cshtml"

The _ViewStart file can be used to define common view code that you want to execute at the start of each View’s rendering. For example, we could write code within our _ViewStart.cshtml file to programmatically set the Layout property for each View to be the SiteLayout.cshtml file by default.

link

link

Sulla nota finale puoi farlo anche con la classe statica che ha config dal database ma devi fare un sacco di ifs.

    
risposta data 30.11.2016 - 21:54
fonte

Leggi altre domande sui tag