从MacroPartialView Umbraco 8获取图片网址

问题描述 投票:0回答:3

嗨我曾经能够从宏获取图像网址:

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指令或汇编引用?)

umbraco umbraco8
3个回答
1
投票

使用Umbraco.TypedMedia而不是Umbraco.Media,API已被简化,因为不再支持动态,并且不再需要前一种方法。

同样适用于内容 - TypedContent已经消失,现在Umbraco.Content返回一个强类型的IPublishedContent项。


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='' />
}

0
投票

试试这个

@inherits Umbraco.Web.Mvc.UmbracoViewPage

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

}

<img scr="@bannerImage.Url" />
© www.soinside.com 2019 - 2024. All rights reserved.