Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
在Umbraco 7中按名称或哈希获取媒体文件夹_Umbraco_Umbraco7 - Fatal编程技术网

在Umbraco 7中按名称或哈希获取媒体文件夹

在Umbraco 7中按名称或哈希获取媒体文件夹,umbraco,umbraco7,Umbraco,Umbraco7,我用的是Umbraco 7.4 我想枚举媒体文件夹(“Images\Splash”)中的所有文件 对于自定义类,我从控制器传递UmbracoHelper实例的引用,并可以获得如下文件夹: var folder = _umbraco.Media(333); 333是我想要的媒体文件夹的Id 如何通过哈希或名称获取此文件夹? 我不想使用Id,因为不能保证不同环境(开发、登台、生产)之间的Id相同。我不认为您可以:-/但您可以将其作为站点上的某个属性(或宏上的参数)因此,您不必在任何地方硬编码ID。

我用的是Umbraco 7.4

我想枚举媒体文件夹(“Images\Splash”)中的所有文件

对于自定义类,我从控制器传递UmbracoHelper实例的引用,并可以获得如下文件夹:

var folder = _umbraco.Media(333);
333是我想要的媒体文件夹的Id

如何通过哈希或名称获取此文件夹?

我不想使用Id,因为不能保证不同环境(开发、登台、生产)之间的Id相同。

我不认为您可以:-/但您可以将其作为站点上的某个属性(或宏上的参数)因此,您不必在任何地方硬编码ID。

我认为您不能:-/但您可以将其作为站点上的某个属性(或宏上的参数),这样您就不必在任何地方硬编码ID。

您无法使用Umbraco助手按名称获取媒体项

我的方法是使用Web.config转换,为每个环境(即本地、临时和实时等)设置不同的节点Id

祝你好运


Craig

使用Umbraco助手无法按名称获取媒体项目

我的方法是使用Web.config转换,为每个环境(即本地、临时和实时等)设置不同的节点Id

祝你好运


Craig

事实证明,您可以使用umbraco助手(\u umbraco)按名称获取媒体文件夹:


事实证明,您可以使用umbraco助手(\u umbraco)按名称获取媒体文件夹:

<add key="HomeNodeId" value="xxxx" />
            var mediaService = _umbraco.UmbracoContext.Application.Services.MediaService;
            var imagesFolder = (IPublishedContent)mediaService.GetRootMedia().FirstOrDefault(m => m.Name.InvariantEquals("Images"));
            var folder = imagesFolder?.Children().FirstOrDefault(c => c.Name.InvariantEquals("Splash"));