@ Umbraco.TypedMedia(MyProperty)在Umbraco 7.6.1中为空

时间:2017-07-06 21:06:00

标签: umbraco

我正在使用Umbraco 7.6.1而我正在尝试使用剃刀中的以下代码获取媒体图像的网址。

@{
   var bannerMediaItem = Umbraco.TypedMedia(Model.Content.Image); 
   var bannerUrl = bannerMediaItem.Url;
}

但即使我知道bannerMediaItem存在,它仍然是null。如果我这样做..

@Model.Content.Image

它返回图像的id,例如1086

4 个答案:

答案 0 :(得分:3)

试试这个

var propertyValue = content.GetPropertyValue<int>(propertyName); // this will give you the id of the media item
var media = helper.TypedMedia(propertyValue);

var url = media == null ? string.Empty : media.Url;

propertyName (字符串值)是您拥有的媒体资源的名称 横幅。

内容是IPublishedContent

帮助是您从Umbraco.Web获得的UmbracoHelper

由于

答案 1 :(得分:3)

在Umbraco v7.6及更高版本中,现在有一个名为UDI的新东西。在此处了解有关UDI的更多信息。 https://our.umbraco.org/documentation/reference/querying/Udi

因此,不是您的媒体项具有数字ID,默认情况下它将具有如下ID:umb:// media / 39d3ac707d634953ab52642d5037855c

以下是id为新类型之一时如何获取媒体网址:

string imageUrl = Model.Content.GetPropertyValue<IPublishedContent>("headerImage").Url;

答案 2 :(得分:2)

好的,所以我几乎是正确的,在@Harsheet的帮助下,这工作......

@{
   var media = Umbraco.TypedMedia(Model.Content.GetPropertyValue<int>("image"));
   var thumbUrl = media.Url;
}

答案 3 :(得分:0)

var pageTitleBackground = (Model.Content.GetPropertyValue<string>("pageTitleBackground")) !=null ? Umbraco.TypedMedia((Model.Content.GetPropertyValue<int>("pageTitleBackground"))).Url : String.Empty;



style="background-image: url('@pageTitleBackground');