【问题标题】:Render image from a theme inside Orchard从 Orchard 中的主题渲染图像
【发布时间】:2011-08-07 07:39:17
【问题描述】:

我刚刚选择了 Orchard 来构建我的博客。作为我努力创建这个新博客的一部分,我正在创建一个自定义主题。这个自定义主题同时具有 CSS 和图像。

我的问题

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

到目前为止我已经尝试过什么

我已尝试使用以下内容:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    这将为您的内容呈现正确的路径。您也可以像 Html.ThemePath(WorkContext.CurrentTheme, "/Content/Header.jpg").Skip(1) 那样去掉前导波浪号 (~),这将为您提供相对于应用程序根目录,但这不是一个好的解决方案。

    【讨论】:

      【解决方案2】:

      您当然也可以使用 Html.Image 帮助器。

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

      谢谢你 - 也只是拿起果园。

      【讨论】:

      • 确实如此,尽管在这种情况下这是个人喜好问题(更多 HTML 与更多 C#;)
      • 我同意 :) 你的回答帮助了我,你
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多