Umbraco剃刀宏DynamicPublishedContentList不包含定义

时间:2015-04-28 09:17:39

标签: c# razor model-view-controller umbraco

我的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不支持扩展方法,但为什么没有我添加引用并且它会产生错误呢?

任何人都可以帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:0)

不完全是答案,但评论时间太长,希望这有助于您的问题排查 检查bin目录中的以下.dll,如果您的项目不需要它们,请将其删除。一次删除一个并在每个之后重新测试,看看是否可以将其钉死。

  

EntityFramework.SqlServer.dll
WebGrease.dll(删除并更新到   最新)
DotNetOAuth.dll

此信息来自Umbraco论坛,特别是下面链接的两个帖子。

https://our.umbraco.org/forum/developers/razor/45308-umbracoMacroEnginesDynamicNodeList-does-not-contain-a-definition-for-Random

https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/53022-UmbracoWebModelsDynamicPublishedContentList-does-not-contain-a-definition-for-Any