Foreach 无法对“方法组”进行操作。您打算调用“方法组”吗?

2023-12-03

我对 C# 还很陌生,但遇到了一个我不太明白的错误?

我有一个想要循环一系列节点的视图,所以我尝试这样做:

@foreach (var crumb in Model.Breadcrumb)
{
  //My code
}

正如在我的视图模型中我有这个:

public IEnumerable<LinkModel> Breadcrumb(IPublishedContent content) {
    //Do logic. 
     return GetFrontpage(content, true).Reverse().Select(item => new LinkModel {
        Target = "",
        Text = item.Name,
        Url = item.Url
    }); 
}

private static IEnumerable<IPublishedContent> GetFrontpage(IPublishedContent content, bool includeFrontpage = false)
{
    var path = new List<IPublishedContent>();

    while (content.DocumentTypeAlias != "frontpage")
    {
        if (content == null)
        {
            throw new Exception("No frontpage found");
        }
        path.Add(content);
        content = content.Parent;
    }
    if (includeFrontpage)
    {
        path.Add(content);
    }
    return path;
}

当您不添加括号时,编译器会将该方法视为方法组。如果您想调用该方法并迭代结果,请使用:

@foreach (var crumb in Model.Breadcrumb(/* your parameters */))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Foreach 无法对“方法组”进行操作。您打算调用“方法组”吗? 的相关文章

随机推荐