从MacroPartialView Umbraco 8获取图像URL

时间:2019-02-28 21:48:07

标签: umbraco umbraco8

嗨,我曾经可以通过以下方式从宏获取图片网址:

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指令?   还是程序集引用?)

3 个答案:

答案 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" />