2009-04-20 9 views
31

Ho un sito ASP.Net 2.0 e voglio tradurlo in paradigma MVC (sono nuovo per questo), ma a partire da Zero.Asp.Net temi MVC, come?

Ho alcuni temi nel mio vecchio sito, ma leggendo qua e là, sembra che Themes non si adatti bene al paradigma MVC.

La domanda è:

Qual è la migliore pratica in MVC per la costruzione di un sito personalizzabile utente a tema? Puoi fare un piccolo esempio, se applicabile?

Nota: sono a conoscenza dello this ma non parlano delle migliori pratiche o di come iniziare.

+0

Di quanto personalizzazione hai bisogno? Se si tratta solo di colori e caratteri, una semplice sostituzione CSS farà il trucco. – User

+0

Principalmente voglio che l'utente sia in grado di cambiare il tema, In Asp.Net 2.0 ottengo facilmente, e voglio sapere come un tipicamente MVC-ish otterrà questo approccio –

risposta

26

Ecco il mio codice che ho usato per l'attuazione di "Temi" in ASP.NET MVC:

ASP.NET MVC: Implement Theme Folders using a Custom ViewEngine

E 'bello quando si è in grado di scambiare appena fuori i file CSS per cambiare il tema , ma questo in realtà non è molto pratico in una tonnellata di casi. Soprattutto quando ogni tema ha bisogno di avere un layout completamente diverso. In tal caso, è necessario modificare il CSS e l'HTML che viene reso, e questo è il motivo per cui ho scritto il codice trovato al link sopra.

+4

Non stiamo creando visualizzazioni e pagine mastro per ogni tema. Sembra che stiamo violando il principale di DRY? – Amitabh

+1

@Amitabh - Ecco perché Chris ha detto: "[lo scambio di codice CSS] non è molto pratico [...] è necessario modificare CSS e HTML." –

+1

È ancora il modo migliore per cambiare layout e temi in MVC4? Il tuo articolo è il 2009 ma sembra persistere sul web. Non c'è davvero alcun modo .NET per farlo ... ancora? – ppumkin

20

Un pulito, semanticamente corretto HTML con un buon CSS è il modo per tema qualsiasi applicazione web, che si tratti di ASP.NET, RoR, PHP, ecc

Il miglior esempio della potenza di CSS è CSS Zen Garden.

w3schools ha un bel introduction/tutorial to CSS.

ciascuno degli utenti potrebbe avere un foglio di stile associato che andrebbe selezionato ogni volta applicabili, cioè .:

<link rel="stylesheet" type="text/css" href="<%= Model.SelectedStyleSheet %>"/> 
+3

Mentre questo è vero, e quelle sono entrambe buone risorse - NON affronta la domanda. Sembra che Jhonny stia cercando suggerimenti e tecniche per implementare un sistema di tema in un progetto MVC ASP.NET. – Jason

+5

@Jason: hai ragione, ho appena aggiunto un modo possibile per implementarlo. –

1

jQuery-ui temi sono belle, e non troppo difficile da attuare.

Basta collegarsi al file js e css e non dimenticare le icone. E assicurati di utilizzare Url.Content() in questi collegamenti. Altrimenti potrebbe non essere collegato al percorso corretto, una volta distribuito su un server di produzione (sono caduto in quella trappola una volta).

+0

Questa non è una risposta alla domanda. – phd

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - [Dalla revisione] (/ recensione/post di bassa qualità/16681117) –

2

Poiché i temi avevano lo scopo di modellare i tag, è possibile utilizzare i CSS per creare un approccio simile. Ti consigliamo probabilmente di iniziare a copiare i temi predefiniti nelle definizioni css, ad es.

html: <input type="button" />

css: ingresso {color: azzurro}

Poi per tutto ciò che ha avuto il tema non predefinito si può applicare solo le classi a loro. Ci vuole un po 'per riscrivere tutti i tuoi temi come CSS, ma una volta fatto vale la pena.