Foreach 无法对 'method group' 进行操作。您是否打算调用 'method group'?
Foreach cannot operate on a 'method group'. Did you intend to invoke the 'method group'?
我是 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;
}
当您不添加括号时,编译器会将方法视为 method group。如果要调用该方法并迭代结果,请使用:
@foreach (var crumb in Model.Breadcrumb(/* your parameters */))
Model.Breadcurmb
是一种方法而不是 属性 或字段,所以如下称呼它
@foreach (var crumb in Model.Breadcrumb(content))
我是 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;
}
当您不添加括号时,编译器会将方法视为 method group。如果要调用该方法并迭代结果,请使用:
@foreach (var crumb in Model.Breadcrumb(/* your parameters */))
Model.Breadcurmb
是一种方法而不是 属性 或字段,所以如下称呼它
@foreach (var crumb in Model.Breadcrumb(content))