在Umbraco 7中按名称或散列获取媒体文件夹



我使用的是Umbraco 7.4。

我想枚举媒体文件夹("ImagesSplash")中的所有文件。

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

var folder = _umbraco.Media(333);

333是我想要的Media文件夹的Id。

我如何通过它的哈希值或它的名称获得这个文件夹?
我不想使用Id,因为这不能保证在不同的环境(开发、登台、生产)之间是相同的。

事实证明,您可以使用UmbracoHelper (_umbraco):

按名称获取媒体文件夹:
            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"));

我不认为你可以:-/但是你可以使它成为一个属性在网站的某个地方(或一个宏参数),所以你不必硬编码的ID在任何地方

您不能使用Umbraco helper按名称获取媒体项。

我的方法是使用Web。配置转换,为每个环境设置不同的节点Id(即本地,分期和;活等)。

<add key="HomeNodeId" value="xxxx" />

然后创建一个类来调用这些不同的NodeId。

参见以下文章:https://weblogs.asp.net/srkirkland/common web -配置-转换- -视觉工作室- 2010

好运克雷格

最新更新