我的umbraco视图为一个工作正常的宏生成了以下代码:
@* Helper method to travers through all descendants *@
@helper Traverse(dynamic node)
{
@* Update the level to reflect how deep you want the sitemap to go *@
var maxLevelForSitemap = 5;
@* Select visible children *@
var selection = node.Children.Where("Visible").Where("Level <= " + maxLevelForSitemap);
@* If any items are returned, render a list *@
if (selection.Any())
{
<ul>
@foreach (var page in selection)
{
<li class="level-@page.Level @(page.IsAncestorOrSelf(CurrentPage) ? "on" : null)">
@if (page.isNotNavigable == true)
{
<span>
<cite class="arrow"></cite>@page.Name
</span>
}
//if next line fails, add before the if below: page.HasProperty("pageRedirectTarget")
else if (page.HasValue("pageRedirectTarget"))
{
var redirectPage = Umbraco.Content(page.pageRedirectTarget);
<a href="@redirectPage.Url.Substring(0, redirectPage.Url.Length - 1)@page.pageRedirectComplement">
<cite class="arrow"></cite>@page.Name
</a>
}
else
{
<a href="@page.Url">
<cite class="arrow"></cite>@page.Name
</a>
}
@* Run the traverse helper again for any child pages *@
@Traverse(page)
</li>
}
</ul>
}
}
当我添加另一个dll(在3.5框架中编译)并且 selection.Any()停止工作时,会出现问题,而是出现错误,说“不包含Any()的定义”
我知道动态dons不支持扩展方法,但为什么没有我添加引用并且它会产生错误呢?
任何人都可以帮助我吗?
感谢。
答案 0 :(得分:0)
不完全是答案,但评论时间太长,希望这有助于您的问题排查 检查bin目录中的以下.dll,如果您的项目不需要它们,请将其删除。一次删除一个并在每个之后重新测试,看看是否可以将其钉死。
EntityFramework.SqlServer.dll
WebGrease.dll(删除并更新到 最新)
DotNetOAuth.dll
此信息来自Umbraco论坛,特别是下面链接的两个帖子。