在Umbraco 7中显示媒体库中的图像

时间:2014-04-17 13:17:48

标签: umbraco umbraco7

这应该是令人尴尬的简单,但我无法让它工作:我只想在偏导视图模板中显示上传到Umbraco媒体库(Umbraco 7.1.1)的图像。代码是

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{   
    var imgNode = CurrentPage.BannerBackgroundImage;
    var imgUrl = umbraco.library.NiceUrl(imgNode);
    <div id="banner-wrapper" style="background: url('@imgUrl') center center no-repeat;">
        <!-- some irrelevant content -->
    </div>
}

其中BannerBackgroundImage是页面的自定义属性。但是,当显示时,@imgUrl会被#替换。

我尝试过的其他替代方案是multiple Media Picker imageshow to display a Media Picker imageget image from media with Razordisplay image from Media Picker,仅举几例。

如果有人能帮我解决我认为的新手问题,我真的很感激!

8 个答案:

答案 0 :(得分:35)

我发现这种方式简单明了:

@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
    var m = Umbraco.Media(CurrentPage.Image);

    <img src="@m.Url" alt="@m.UrlName" />
}

我希望它可以帮助其他人

答案 1 :(得分:14)

感谢Jesus Mogollon,

我已经崩溃了:

<img src="@Umbraco.Media(CurrentPage.headerBackgroundImage).Url" alt="">

我已将文件设置为强制文件,因此希望我不需要 if 语句部分。

答案 2 :(得分:4)

我曾经有过这样一个出乎意料的困难时间,我觉得这很容易,这段剪辑对我来说很有用。

@if (Model.Content.HasValue("OtherImages"))
{
   var otherImages = Model.Content.GetPropertyValue<List<IPublishedContent>>("OtherImages");
   foreach (var image in otherImages)
   {
      if (image != null)
      {
         <img src="@image.Url" alt="@image.Name" class="img-responsive img-rounded"  />
      }
   }
}

其他大部分帖子对我都不起作用,但我认为API已经发生了一些变化。我使用的是Umbraco 7.6.1。我不确定无效检查是否有必要,但它肯定不会造成任何伤害。

答案 3 :(得分:2)

这对我来说很有用,来自Umbraco 6媒体文档,here

var bannerImage = Umbraco.TypedMedia(Model.Content.GetPropertyValue("plainImage"));

<div class="my-banner-wrapper" style="background-image: url(@bannerImage.GetPropertyValue("umbracoFile"));">
    <!-- some irrelevant content -->
</div>

答案 4 :(得分:2)

试试这个

@if (CurrentPage.Image != null && !(CurrentPage.Image is Umbraco.Core.Dynamics.DynamicNull))
{
    var m = Umbraco.Media((int)CurrentPage.Image);

    <img src="@m.Url" alt="@m.UrlName" />
}

注意:由于Umbraco.Media ambigous构造函数,您应该将CurrentPage.Image转换为int

答案 5 :(得分:1)

 <img src="@Umbraco.Media(Convert.ToString(@Umbraco.Field("image"))).umbracoFile" alt="" />

答案 6 :(得分:0)

在模板内

umbraco:Macro runat =“server”language =“cshtml”

img src="@Model.MediaById(Model.photo).umbracoFile" alt=""/

/一把umbraco:宏

--- Model.photo =照片是爱丽丝的名字

答案 7 :(得分:0)

我将其输入到正在使用的模板或母版中的doctype上方部分。

@{
Layout = null;
var regionalPage = Umbraco.Content(this.CurrentPage.Id);
string manangerPhotoUrl = string.Format("https://assets.yourdomain.com{0}", @Umbraco.Media(regionalPage.managerPhoto).Url);
}

然后我将保存字符串值的变量添加到标记中的图像源属性。

<img class="img-responsive" src="@manangerPhotoUrl" />