Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Umbraco Imagegen GetCropUrl on Api_C#_Umbraco - Fatal编程技术网

C# Umbraco Imagegen GetCropUrl on Api

C# Umbraco Imagegen GetCropUrl on Api,c#,umbraco,C#,Umbraco,我正在Umbraco v7.1上使用ImageGen。到目前为止还不错,我能够通过我的Razor代码获得裁剪URL 但是,我需要在我的Api控制器上获取裁剪url,但我不确定如何做到这一点 这就是我目前试图得到它的方式 ModelImage = Services.MediaService.GetById(galleryId).GetValue("modelImage").ToString() …其中,ModelImage是“图像裁剪器”数据类型的别名。 这将返回src属性中的图像url以及裁剪

我正在Umbraco v7.1上使用ImageGen。到目前为止还不错,我能够通过我的Razor代码获得裁剪URL

但是,我需要在我的Api控制器上获取裁剪url,但我不确定如何做到这一点

这就是我目前试图得到它的方式

ModelImage = Services.MediaService.GetById(galleryId).GetValue("modelImage").ToString()
…其中,
ModelImage
是“图像裁剪器”数据类型的别名。 这将返回src属性中的图像url以及裁剪信息(添加了换行符):


有人知道如何获取裁剪url而不是原始图像url吗?

如果将图像节点检索为IPPublishedContent而不是IMedia,则可以获取裁剪url。这允许您使用GetCropUrl()方法,传入图像裁剪器属性的别名和所需裁剪的别名

var cropUrl = Umbraco.TypedMedia(galleryId).GetCropUrl("modelImage", "modelListCrop");

我得到这个错误…'Umbraco.Core.Models.IPublishedContent”不包含“GetCropUrl”的定义,并且找不到接受类型为“Umbraco.Core.Models.IPublishedContent”的第一个参数的扩展方法“GetCropUrl”(是否缺少using指令或程序集引用?),通过添加Umbraco.Web命名空间修复了此错误。愚蠢的我:/Thank有点离题,但一般来说,您想要使用ContentService或MediaService的唯一原因是您想要获取旧版本的内容,或者您想要创建、更新或删除。ContentService和MediaService都访问了数据库。您希望尽可能利用Umbraco Helper调用,如
Umbraco.TypedContent
Umbraco.TypedMedia
。这两个调用都命中缓存而不是数据库。ImageGen?用图像裁剪器?为什么?裁剪机由ImageProcessor供电。
var cropUrl = Umbraco.TypedMedia(galleryId).GetCropUrl("modelImage", "modelListCrop");