我正在使用Umbraco 7.6.1而我正在尝试使用剃刀中的以下代码获取媒体图像的网址。
@{
var bannerMediaItem = Umbraco.TypedMedia(Model.Content.Image);
var bannerUrl = bannerMediaItem.Url;
}
但即使我知道bannerMediaItem存在,它仍然是null。如果我这样做..
@Model.Content.Image
它返回图像的id,例如1086
答案 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');