我使用的是Umbraco 7.4。
我想枚举媒体文件夹中的所有文件(" Images \ Splash")。
对于自定义类,我从控制器传递UmbracoHelper实例的引用,并且可以得到如下文件夹:
var folder = _umbraco.Media(333);
333是我想要的媒体文件夹的ID。
如何通过哈希或其名称获取此文件夹?
我不想使用Id,因为在环境(开发,登台,制作)之间不能保证这一点。
答案 0 :(得分:5)
事实证明,您可以使用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"));
答案 1 :(得分:0)
我认为你不能: - /但是你可以把它变成网站上的某个属性(或宏上的参数),这样你就不必在任何地方对ID进行硬编码。 / p>
答案 2 :(得分:0)
您无法使用Umbraco助手按名称获取媒体项目。
我这样做的方法是使用Web.config Transformations为每个环境设置不同的Node Id(即Local,Staging& Live等)。
<add key="HomeNodeId" value="xxxx" />
然后创建一个用于调用这些不同NodeId的类。
请参阅以下文章: https://weblogs.asp.net/srkirkland/common-web-config-transformations-with-visual-studio-2010
祝你好运克雷格