C# Umbraco Macro can';在对后端的媒体树执行排序之前,无法查看媒体项
我在我的一个Umbraco 7.3.7网站上有一个奇怪的行为。我有几个razor宏,它们在媒体树中的文件夹和文件中循环,并写出链接以查看子文件夹或文件链接 该宏在站点上运行了好几天,但由于未知原因,宏在媒体树中找不到任何项目。如果我登录到网站的后端,我可以浏览媒体树,看到文件/文件夹仍然存在 我可以“重新加载节点”,但这没有效果。宏仍不显示项目。但是,如果我右键单击媒体树中的文件夹并选择“排序”,则会使文件夹内容在宏输出中再次可见 我必须对媒体树中的每个文件夹进行排序,对顶级文件夹进行排序并不意味着显示子文件夹中的内容 该网站然后运行了几天,然后它突然再次发生,我必须排序所有的文件夹 请问有人能帮忙找出是什么原因造成的吗 还有什么方法可以通过编程方式循环浏览媒体树中的所有文件夹,并对每个文件夹进行排序,这样我就不必手动依次对每个文件夹进行排序C# Umbraco Macro can';在对后端的媒体树执行排序之前,无法查看媒体项,c#,.net,umbraco,umbraco7,C#,.net,Umbraco,Umbraco7,我在我的一个Umbraco 7.3.7网站上有一个奇怪的行为。我有几个razor宏,它们在媒体树中的文件夹和文件中循环,并写出链接以查看子文件夹或文件链接 该宏在站点上运行了好几天,但由于未知原因,宏在媒体树中找不到任何项目。如果我登录到网站的后端,我可以浏览媒体树,看到文件/文件夹仍然存在 我可以“重新加载节点”,但这没有效果。宏仍不显示项目。但是,如果我右键单击媒体树中的文件夹并选择“排序”,则会使文件夹内容在宏输出中再次可见 我必须对媒体树中的每个文件夹进行排序,对顶级文件夹进行排序并不意
@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 -->
}
}
@继承Umbraco.Web.Macros.PartialViewMacroPage
@{var mediaId=1062;}
@if(mediaId!=null)
{
@*获取与传入的id关联的所有媒体项*@
var媒体=Umbraco.media(媒体ID);
var selection=media.Children(“文件夹”);
if(selection.Any())
{
var count=selection.count();
var colitems=计数/3;
var colmod=计数%3;
if(colmod!=0)
{
大肠菌群+=1;
}
var循环计数=1;
@foreach(选择中的var项目)
{
if(loopcount==1)
{
@:
@:
}
-
@*GetChildFolders(@item.Id)*@
循环计数+=1;
if(loopcount==colitems+1)
{
@:
@:
循环计数=1;
}
}
@*结束for循环,检查是否需要关闭列表和列*@
@if(loopcount!=colitems+1&&loopcount!=1)
{
@:
@:
}
}
}
暗中拍摄:尝试通过删除应用程序数据/TEMP并重新启动应用程序池,让Umbraco重建索引。首先备份。同意重建索引(您也可以转到开发者>>检查管理选项卡>>外部索引器>>重建索引)。重新发布站点(或者仅仅是给您带来问题的节点)也有帮助(本质上这就是排序为您所做的事情-重新编制索引/重新发布):尝试通过删除App_Data/TEMP并重新启动App Pool,让Umbraco重建索引。首先备份。同意重建索引(您也可以转到开发者>>检查管理选项卡>>外部索引器>>重建索引)。重新发布站点(或者只是发布问题的节点)也会有所帮助(这基本上就是排序为您所做的事情-重新编制索引/重新发布)