从MacroPartialView Umbraco 8获取图像url

从MacroPartialView Umbraco 8获取图像url,umbraco,umbraco8,Umbraco,Umbraco8,嗨,我以前可以通过以下方式从宏获取图像url: var imgMain = Model.MacroParameters["image"]; int imgWidth = Convert.ToInt32(Model.MacroParameters["imageWidth"]); var mediaItemOne = Umbraco.TypedMedia(imgMain); <img src='@mediaItemOne.Url.GetCropUrl(width:ima

嗨,我以前可以通过以下方式从宏获取图像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=''/ >
var imgMain=Model.MacroParameters[“image”];
int imgWidth=Convert.ToInt32(Model.MacroParameters[“imageWidth]”);
var mediatitemone=Umbraco.TypedMedia(imgMain);
当我现在遇到以下错误,并且找不到任何关于如何操作的文档时,Umbraco 8的新方法是什么:

“UmbracoHelper”不包含“TypedMedia”的定义,并且没有 可访问扩展方法“TypedMedia”接受的第一个参数为 找不到类型“UmbracoHelper”(是否缺少using指令 或程序集引用?)


好的,如果有人看到这篇文章,这就是我最终在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='' />
}
@继承Umbraco.Web.Macros.PartialViewMacroPage
@使用Umbraco.Web;
@使用Umbraco.Web.com
@{
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);
}

不使用
Umbraco.TypedMedia
,只需使用
Umbraco.Media
API已被简化,因为不再支持动态,也不再需要前一种方法

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

试试这个

@inherits Umbraco.Web.Mvc.UmbracoViewPage

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

}

<img scr="@bannerImage.Url" />
@继承Umbraco.Web.Mvc.UmbracoViewPage
@{
var site=Model.Root();
var bannerImage=模型值(“bannerImage”);
}

请注意,Current.Umbraco Helper与使用Umbraco属性完全相同-您现在可以使用
Umbraco.Media
。。。请参见下面我的答案。Umbraco总部的指导是,永远不要使用
当前的
静态(或已知的单例)对象,在大多数情况下,您已经拥有访问内容、媒体等所需的一切。