2011-04-17 37 views
13

Acabo de comprar Orchard para construir mi blog. Como parte de mi esfuerzo por crear este nuevo weblog, estoy creando un tema personalizado. Este tema personalizado presenta tanto CSS como imágenes.Renderizar imagen desde un tema dentro de Orchard

Mi pregunta

Mi pregunta básicamente se reduce a esto: ¿Cómo se renderiza una imagen que es parte del tema?

Lo que he intentado hasta ahora

He tratado de utilizar lo siguiente:

<img src="@Html.ThemePath("/Content/Header.jpg")" alt="Logo"/> 

Pero eso no quiere trabajar a muy buenos. Devuelve el siguiente marcado HTML:

<img src="~/Themes/FizzyLogic/Content/Header.jpg" alt="Logo"/> 

que no es exactamente lo que debería devolver. Esperaba que devolviera la ruta absoluta a la imagen dentro de mi sitio web.

Respuesta

25

Hay dos formas de lograr eso. La mejor manera sería pasar la URL a Url.Content (...) método de ayuda como esto:

<img src="@Url.Content(Html.ThemePath(WorkContext.CurrentTheme, "/Content/Header.jpg"))" /> 

cual hará que el camino adecuado a su contenido. También puede simplemente pelar la tilde principal (~) como Html.ThemePath (WorkContext.CurrentTheme, "/Content/Header.jpg").Skip(1), que le dará la ruta relativa a la raíz de la aplicación, pero esa no es una buena solución sin embargo.

3

Por supuesto, también puede utilizar el ayudante Html.Image.

@Html.Image(Html.ThemePath(WorkContext.CurrentTheme,"/Content/Header.jpg"), "Alt Text", null) 

Gracias por esto, solo recogiendo Orchard también.

+1

De hecho, aunque en este caso es una cuestión de preferencia personal (más HTML vs más C#;) –

+0

Estoy de acuerdo :) Su respuesta me ayudó, ty – ccook

Cuestiones relacionadas