从Orchard内的主题渲染图像

时间:2011-04-17 13:29:56

标签: .net asp.net asp.net-mvc asp.net-mvc-3 orchardcms

我刚刚拿起Orchard来构建我的博客。作为我努力创建这个新博客的一部分,我正在创建一个自定义主题。此自定义主题包含CSS和图像。

我的问题

我的问题基本上归结为:我如何渲染作为主题一部分的图像?

到目前为止我尝试了什么

我试过使用以下内容:

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

但这并不好用。它返回以下HTML标记:

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

这不应该是它应该返回的内容。我希望它能返回我网站内图像的绝对路径。

2 个答案:

答案 0 :(得分:25)

有几种方法可以实现这一目标。最好的方法是将URL传递给 Url.Content(...)帮助方法,如下所示:

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

将呈现您内容的正确路径。您也可以删除前导代字号(〜),如 Html.mePath(WorkContext.CurrentTheme,“/ Content / Head.jpg”)。跳过(1),它将为您提供相对于应用程序根目录,但这不是一个好的解决方案。

答案 1 :(得分:3)

你当然也可以使用Html.Image助手。

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

谢谢你 - 也只是拿起Orchard。