C# 模型绑定到列表编辑器导致编译错误

C# 模型绑定到列表编辑器导致编译错误,c#,asp.net-mvc,entity-framework,razor,ef-database-first,C#,Asp.net Mvc,Entity Framework,Razor,Ef Database First,我在这里尝试做的似乎很常见,但我无法运行此代码。我得到一个编译错误 我正在尝试绑定到viewmodel中的ienumerable或icollection。我的语法错了吗?有没有一种新的方式来做我错过的事情 @for(var i=0; i < Model.traces.Count(); ++i) { @Html.EditorFor(x => x.traces[i].status) } @for(var i=0;ix.traces[i].状态) } 我的架构的细节在我以前的一

我在这里尝试做的似乎很常见,但我无法运行此代码。我得到一个编译错误

我正在尝试绑定到viewmodel中的ienumerable或icollection。我的语法错了吗?有没有一种新的方式来做我错过的事情

@for(var i=0; i < Model.traces.Count(); ++i)
{
    @Html.EditorFor(x => x.traces[i].status)
}
@for(var i=0;ix.traces[i].状态)
}
我的架构的细节在我以前的一篇文章中,这篇文章导致了

我的语法错了吗

是,IEnumerable或ICollection没有索引器:
x.traces[i]

如果您使用的集合的元素可以通过索引访问,例如
IList
T[]
,这将更好,具体取决于视图模型的具体类型

然后您将能够执行以下操作:

@model IList<MyViewModel>
...
@for (var i = 0; i < Model.traces.Count; i++)
{
    @Html.EditorFor(x => x.traces[i].status)
}
@model-IList
...
@对于(var i=0;ix.traces[i].状态)
}

在这种情况下,框架非常智能,如果您已经为模型
跟踪
制作了自己的editor模板,您实际上可以编写

@Html.EditorFor(m => m.traces)

MVC将为列表中的每个项目提供一个编辑器,并为每个索引提供正确的字段名。

您是否检查了请求中的post参数?再次感谢您在jannagy之前的帖子中提供的所有帮助。这是一个艰难的一个我很高兴能完成!我很高兴听到它完成了:)我已经研究过了,但据我所知,我必须以一种告诉框架如何编写html的方式创建模板,这是我失败的一部分。你有一个可以指向我的链接吗?你能发布
Trace
类吗?我可以告诉你如何为它制作一个模板。是的-列表修复了这个问题-我最后的剃须刀语法是@对于(var i=0;i