我正在尝试获取Umbraco的image Cropper属性的图像ID,以便将其与TypedMedia(id).GetResponsiveCropUrl()
方法一起使用。
我很难只提取ID。我当前的实现item.GetProperty("mainImage").Value.ToString()
返回JSON对象,该对象由额外的Image Cropper数据组成,如焦点:
{ "focalPoint": { "left": 0.71111111111111114, "top": 0.57 }, "src": "/media/1004/9910_03_7326-river-flood_web.jpg", "crops": [ { "alias": "Carousel", "width": 700, "height": 400 } ] }1156
检索图像ID的最佳方法是什么?
这是我的实现:
foreach (Node item in Node.GetCurrent().GetDescendantNodes())
{
if (item.GetProperty<bool>("showInNewsCarousel") == true)
{
Response.Write(item.GetProperty("mainImage").Value.ToString());
// var slideImage = Umbraco.Media(item.GetProperty("mainImage").Value);
<img class="img-responsive" src="@Umbraco.TypedMedia(1155).GetResponsiveCropUrl("Carousel")" />
}
}
您在注释中所说的1156
值是图像ID,但实际上并不是JSON的一部分,而是后来添加的。(如果你尝试在JSONLint.com上验证字符串,你就会明白我的意思。)由于ID不是JSON的一部分,你将无法使用JSON解析器来获取值。我认为你最好的选择就是找到最后一个最后的支撑,然后拿下所有的东西。
string id = json.Substring(json.LastIndexOf('}') + 1).Trim();