1

嗨,我曾经能够从宏中获取图像 url:

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'的定义,并且找不到接受'UmbracoHelper'类型的第一个参数的可访问扩展方法'TypedMedia'(您是否缺少 using 指令或程序集引用?)

4

3 回答 3

2

取而代之的是Umbraco.TypedMedia,仅使用Umbraco.MediaAPI 已被简化,因为不再支持动态并且不再需要前一种方法。

Content 也是如此 -TypedContent已经消失,现在Umbraco.Content返回一个强类型 IPublishedContent 项。

于 2019-03-01T20:07:31.660 回答
1

好的,如果有人看到这篇文章,这就是我最终让它在 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='' />
}
于 2019-02-28T22:17:46.670 回答
0

尝试这个

@inherits Umbraco.Web.Mvc.UmbracoViewPage

@{
    var site = Model.Root();
    var bannerImage = Model.Value<IPublishedContent>("bannerImage");

}

<img scr="@bannerImage.Url" />
于 2019-05-09T12:23:14.157 回答