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

在Umbraco 7中显示媒体库中的图像,umbraco,umbraco7,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-wrapp

这应该非常简单,但我无法让它工作:我只想在部分视图模板中显示上载到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>
}
@继承Umbraco.Web.Mvc.UmbracoTemplatePage
@{   
var imgNode=CurrentPage.BannerBackgroundImage;
var imgUrl=umbraco.library.NiceUrl(imgNode);
}
其中BannerBackgroundImage是页面的自定义属性。但是,当显示时,
@imgUrl
将替换为
#

我尝试过的其他选择还有、、和,仅举几个例子


如果有人能帮我解决我认为是新手的问题,我将不胜感激

这对我来说很有效,从Umbraco 6媒体文档中

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

我发现这样做既简单又干净:

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

    <img src="@m.Url" alt="@m.UrlName" />
}
@if(CurrentPage.Image!=null&!(CurrentPage.Image是Umbraco.Core.Dynamics.DynamicNull))
{
var m=Umbraco.Media(当前页面图像);
}
我希望它能帮助别人

谢谢耶稣·莫戈伦

我将其折叠为:

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

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

在模板中

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

/翁布拉科:宏

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

试试这个

@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" />
}
@if(CurrentPage.Image!=null&!(CurrentPage.Image是Umbraco.Core.Dynamics.DynamicNull))
{
var m=Umbraco.Media((int)CurrentPage.Image);
}
注意:由于Umbraco.Media模棱两可的构造函数,您应该将CurrentPage.Image强制转换为int
 <img src="@Umbraco.Media(Convert.ToString(@Umbraco.Field("image"))).umbracoFile" alt="" />

在经历了一段出乎意料的艰难时期之后,我本以为这件事会很容易,但这次剪短对我来说很有效

@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"  />
      }
   }
}
@if(Model.Content.HasValue(“其他图像”))
{
var otherImages=Model.Content.GetPropertyValue(“otherImages”);
foreach(其他图像中的var图像)
{
如果(图像!=null)
{
}
}
}

很多其他帖子对我来说都不起作用,但我认为API已经有了一些变化。我用的是Umbraco 7.6.1。我不确定是否有必要进行空检查,但它肯定不会造成任何伤害。

我在所使用的模板或母版中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" />


+1经过大量搜索和尝试,这是唯一对我有效的答案。我不明白的是,为什么媒体采集器还没有这样做?与呈现所需图像的URL的调用不同,是否有充分的理由不使用输出ID的不同函数?其中M=什么?!请在你的答案中添加一些解释,以帮助OP和其他人理解你发布的代码。在给出答案之前,答案是正确的,但过程太长。。第一个Umbraco.字段(“图像”),它是页面中的媒体选择器,并返回该字段的id。另一个和img路径的语法相同……我只是简写。
@{
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" />