嗨,我曾经可以通过以下方式从宏获取图片网址:
var imgMain = Model.MacroParameters["image"];
int imgWidth = Convert.ToInt32(Model.MacroParameters["imageWidth"]);
var mediaItemOne = Umbraco.TypedMedia(imgMain);
<img src='@mediaItemOne.Url.GetCropUrl(width:imageWidth)' alt=''/ >
Umbraco 8中的新方法是什么,因为我现在收到以下错误,并且我找不到有关该操作的任何文档:
UmbracoHelper”不包含“ TypedMedia”的定义,并且没有 可访问的扩展方法“ TypedMedia”,它接受第一个参数 可以找到“ UmbracoHelper”类型(您是否缺少using指令? 还是程序集引用?)
答案 0 :(得分:1)
仅使用Umbraco.TypedMedia
代替了Umbraco.Media
,由于不再支持动态特性并且不再需要使用前一种方法,因此简化了API。
内容也是如此-TypedContent
已经消失,现在Umbraco.Content
返回了一个强类型的IPublishedContent项。
答案 1 :(得分:0)
好的,如果有人碰到这篇文章,这就是我最终使它在Umbraco 8中工作的方式
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@using Umbraco.Web;
@using Umbraco.Web.Composing
@{
var img = Model.MacroParameters["image"].ToString();
int imageWidth = Convert.ToInt32(Model.MacroParameters["imageWidth"]);
var udi = Udi.Parse(img);
var imgUrl = Current.UmbracoHelper.ContentQuery.Media(udi).Url;
<img src='@imgUrl.GetCropUrl(width:imageWidth)' alt='' />
}
答案 2 :(得分:0)
尝试
@inherits Umbraco.Web.Mvc.UmbracoViewPage
@{
var site = Model.Root();
var bannerImage = Model.Value<IPublishedContent>("bannerImage");
}
<img scr="@bannerImage.Url" />