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

问题描述 投票:23回答:8

这应该是令人尴尬的简单,但我不能让它工作:我只想在部分视图模板中显示上传到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,仅举几例。

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

umbraco umbraco7
8个回答
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" />
}

我希望它能帮助别人


14
投票

谢谢耶稣Mogollon,

我已经崩溃了:

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

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


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。我不确定是否有必要进行空检查,但它肯定不会造成任何伤害。


2
投票

这对我来说很有用,来自Umbraco 6 Media docs,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>

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


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

0
投票

在模板内

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

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

/一把umbraco:宏

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


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" />
© www.soinside.com 2019 - 2024. All rights reserved.