24

这应该是非常简单的事情,但我无法让它工作:我只想在部分视图模板中显示上传到 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将替换为#

我尝试过的其他替代方法是多个 Media Picker 图像如何显示 Media Picker 图像使用 Razor 从媒体获取图像以及从 Media Picker 显示图像等等。

如果有人可以帮助我解决我认为是菜鸟的问题,我将不胜感激!

4

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

我希望它可以帮助别人

于 2014-06-05T20:58:02.890 回答
14

谢谢耶稣Mogollon,

我已将其折叠为:

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

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

于 2014-11-18T14:36:03.083 回答
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。我不确定是否需要进行空检查,但它肯定不会造成任何伤害。

于 2017-05-22T19:57:27.553 回答
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>
于 2014-04-20T01:08:59.420 回答
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 模棱两可的构造函数,您应该将 CurrentPage.Image 转换为 int

于 2015-07-27T08:16:23.787 回答
1
 <img src="@Umbraco.Media(Convert.ToString(@Umbraco.Field("image"))).umbracoFile" alt="" />
于 2017-04-01T12:02:14.177 回答
0

模板内部

umbraco: 宏 runat="server" 语言="cshtml"

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

/umbraco:宏

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

于 2015-02-25T12:11:56.757 回答
0

我将此输入到正在使用的模板或主文件中的文档类型上方的部分。

@{
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" />
于 2017-08-22T22:32:30.940 回答