gpt4 book ai didi

asp.net-mvc-3 - 如何从 Sitecore MediaItem 获取图像参数?

转载 作者:行者123 更新时间:2023-12-03 18:34:23 25 4
gpt4 key购买 nike

在构建 json 提要时,我需要在 Controller 中读取图像参数(源、宽度、高度)。

我完成了 this question 中的所有步骤.但是建议的方法允许您使用 View Helper 获取图像标签,并且仅在 View 上下文中。因为我不能(并且真的不想,因为它真的很糟糕)在 Controller 中创建 HTMLHelper 我无法在那里生成它。

This method无论我在 web.config 文件中设置什么,只给我 *.ashx 的路径。所以我有这个 *.ashx URL( /~/media/5EE32493443547ED8DB0B26166209C85.ashx )但我不能利用它并生成正常的 *.jpg URL,即 /~/media/001FC62786B044F5888640C7164ED72F.JPG .

*.ashx URL 中有 ID( 5EE32493-4435-47ED-8DB0-B26166209C85 ),但 *.jpg 没有...

此外,当我将 *.ashx URL 粘贴到浏览器中时,服务器响应无法找到资源的异常。

最佳答案

经过一段时间的搜索和尝试,并测试了许多选项,我找到了非常简单的解决方案:

string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(item);
item应该是 Sitecore.Data.Items.MediaItem 的对象类(class)。
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;
}
}

我已添加 AltID参数也一样。还有其他像 ClassBorder ,但是由于这些东西可以在前端设置(HTML + CSS),所以我没有添加它们。

如果要将此类输出为 Json,请将 Controller 操作设置为返回 JsonResult ,并添加这一行(其中 objDataItemImage 类的实例):
return Json(obj, JsonRequestBehavior.AllowGet);

我希望它也能帮助其他 Sitecore 开发人员。

关于asp.net-mvc-3 - 如何从 Sitecore MediaItem 获取图像参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14948653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com