我的一个Umbraco 7.3.7网站上有一个奇怪的行为。我有几个剃刀宏,它们遍历媒体树中的文件夹和文件,并写出链接以查看子文件夹或链接到文件。
宏在网站上正常工作了好几天,但由于某些未知原因,宏无法在媒体树中找到任何项目。如果我登录到网站的后端,我可以浏览媒体树,看到文件/文件夹仍在那里。
我可以'重新加载节点',但这没有效果。宏仍未显示项目。但是,如果我右键单击媒体树中的文件夹并选择“排序”,则会使文件夹内容在宏输出中再次可见。
我必须对媒体树中的每个文件夹进行排序,对顶级文件夹进行排序并不意味着显示子文件夹中的内容。
该网站然后运行了好几天,然后突然再次发生,我必须对所有文件夹进行排序。
任何人都可以帮忙解决造成这种情况的原因吗?
还有什么方法可以通过编程方式遍历媒体树中的所有文件夹并对每个文件夹执行排序,这样我就不必经历手动过程依次对每个文件夹进行排序。
@inherits Umbraco.Web.Macros.PartialViewMacroPage
@{ var mediaId = 1062; }
@if (mediaId != null)
{
@* Get all the media item associated with the id passed in *@
var media = Umbraco.Media(mediaId);
var selection = media.Children("Folder");
if (selection.Any())
{
var count = selection.Count();
var colitems = count / 3;
var colmod = count % 3;
if (colmod != 0)
{
colitems += 1;
}
var loopcount = 1;
<!--<p>Count: @count @colitems</p>-->
<div class="row">
@foreach (var item in selection)
{
if (loopcount == 1)
{
@:<div class="col-sm-4">
@:<ul class="HomeFolderList">
}
<li>
<!--<h3><a href="javascript:showChildren(@item.Id);" title="@item.Name">@item.Name</a></h3>-->
<h3><a href="/GetCategory/?mid=@item.Id&category=@Server.UrlEncode(item.Name)" title="@item.Name">@item.Name</a></h3>
@* GetChildFolders(@item.Id)*@
</li>
loopcount += 1;
if (loopcount == colitems + 1)
{
@:</ul>
@:</div>
loopcount = 1;
}
}
@* end of for loop, check if we need to close the list and column *@
@if (loopcount != colitems + 1 && loopcount != 1)
{
@:</ul>
@:</div>
}
</div><!-- / row -->
}
}