经过一段时间的搜索和尝试,并测试了许多选项,我找到了非常简单的解决方案:
string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(item);
item
应该是Sitecore.Data.Items.MediaItem
类的对象。
mediaUrl
变量具有以下值:/~/media/001FC62786B044F5888640C7164ED72F.JPG
基于这个简单的方法,我回到了关于宽度和高度的问题,并且我编写了简单的类(以便于将图像序列化为 JSON),它将向您展示如何从通过 Sitecore CMS 添加的图像中获取所有属性:
public class DataItemImage
{
public string ID { get; set; }
public string Source { get; set; }
public string Width { get; set; }
public string Height { get; set; }
public string Alt { get; set; }
public DemoDataItemImage(Sitecore.Data.Fields.ImageField obj)
{
string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(obj.MediaItem);
ID = obj.MediaItem.ID.ToString();
Source = mediaUrl;
Width = obj.Width;
Height = obj.Height;
Alt = obj.Alt;
}
}
我也添加了Alt
和ID
参数。还有其他的like Class
and Border
,但是由于这些东西可以在前端设置(HTML + CSS),所以我没有添加它们。
如果要将此类输出为 Json,请将控制器操作设置为 return JsonResult
,并添加以下行(其中obj
是DataItemImage
类的实例):
return Json(obj, JsonRequestBehavior.AllowGet);
我希望它也能帮助其他 Sitecore 开发人员。