2009-04-20 27 views
31

Tengo un sitio ASP.Net 2.0 y quiero traducirlo al paradigma MVC (soy nuevo en esto), pero a partir de cero.Temas Asp.Net MVC, ¿cómo?

Tengo algunos temas en mi sitio anterior, pero al leer aquí y allá, parece que Temas no encaja bien en el paradigma MVC.

La pregunta es:

¿Cuál es la mejor práctica en la MVC para la construcción de un usuario del sitio personalizable temáticas? ¿Puede dar un pequeño ejemplo, si corresponde?

Nota: Conozco this pero no hablan sobre las mejores prácticas o cómo empezar.

+0

¿Cuánta personalización necesitas? Si solo se trata de colores y fuentes, un simple reemplazo de CSS hará el truco. – User

+0

Principalmente quiero que el usuario pueda cambiar el Tema, en Asp.Net 2.0 lo logro con facilidad, y quiero saber cómo un tipo de MVC-ish típico obtendrá este enfoque –

Respuesta

26

Aquí está mi código que he estado utilizando para la implementación de "Temas" en ASP.NET MVC:

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

Es agradable cuando usted es capaz de simplemente intercambiar archivos CSS para cambiar el tema , pero esto realmente no es muy práctico en muchos casos. Especialmente cuando cada tema debe tener un diseño completamente diferente. En ese caso, debe cambiar el CSS y el HTML que se procesa, y esta es la razón por la que escribí el código que se encuentra en el enlace de arriba.

+4

¿No estamos creando vistas y páginas maestras para cada tema? Parece que estamos violando el principal SECO? – Amitabh

+1

@Amitabh - Es por eso que Chris dijo, "[simplemente intercambiando CSS] no es muy práctico [...] necesitas cambiar el CSS y el HTML". –

+1

¿Sigue siendo esta la mejor manera de cambiar diseños y temas en MVC4? Su artículo es 2009 pero parece persistir en la web. Realmente no hay forma de hacerlo .NET todavía? – ppumkin

20

A, HTML semánticamente correcta limpio con una buena CSS es el tema de manera de cualquier aplicación web, ya sea ASP.NET, RoR, PHP, etc.

El mejor ejemplo del poder de la CSS es CSS Zen Garden.

w3schools tiene un bonito introduction/tutorial to CSS.

Cada una de sus usuarios podrían tener una hoja de estilo asociada que ser seleccionado siempre que sea aplicable, es decir .:

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

Si bien esto es cierto, y ambos son buenos recursos, NO aborda la pregunta. Parece que Jhonny está buscando consejos y técnicas para implementar un sistema de temas en un proyecto ASP.NET MVC. – Jason

+5

@Jason: tienes razón, acabo de agregar una forma posible de implementar esto. –

1

jQuery-ui temas están muy bien, y no demasiado difícil de implementar.

Simplemente haga un enlace al archivo js y css y no olvide los iconos. Y asegúrese de usar Url.Content() en esos enlaces. De lo contrario, podría no estar vinculado a la ruta correcta, una vez que lo implemente en un servidor de producción (caí en esa trampa una vez).

+0

Esa no es una respuesta para la pregunta. – phd

+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la crítica] (/ review/low-quality-posts/16681117) –

2

Como los temas fueron pensados ​​para estilizar las etiquetas, puede usar CSS para crear un enfoque similar. Probablemente recomendaría que comiences copiando tus temas predeterminados a las definiciones css, p.

html: <input type="button" />

css: Entrada {color: azul claro}

Entonces para cualquier cosa que tenía su tema no predeterminada sólo se puede aplicar a las clases de ellos. Lleva un tiempo volver a escribir todos sus temas como CSS, pero una vez hecho, vale la pena el esfuerzo.