C# 否";指定的参数超出了有效值的范围;带DropDownListFor

C# 否";指定的参数超出了有效值的范围;带DropDownListFor,c#,asp.net-mvc-2,html.dropdownlistfor,C#,Asp.net Mvc 2,Html.dropdownlistfor,在我的一个视图中,我想输出一个文本框: Html.TextBoxFor(x=>x.Foo[0].Bar) %> 如果Model.Foo为空,则会出现错误“指定的参数超出了有效值的范围” 我用同一型号试过,但改为使用下拉列表: Html.DropDownListFor(x=>x.Foo[0].Bar, Model.BarList) %> 没有错误 这不是一个真正的问题,但我认为这是一个奇怪的行为,我希望这里的人能给我一个解释。这可能是因为EditorFor syntax

在我的一个视图中,我想输出一个文本框:

Html.TextBoxFor(x=>x.Foo[0].Bar) %>
如果Model.Foo为空,则会出现错误“指定的参数超出了有效值的范围”

我用同一型号试过,但改为使用下拉列表:

Html.DropDownListFor(x=>x.Foo[0].Bar, Model.BarList) %>
没有错误


这不是一个真正的问题,但我认为这是一个奇怪的行为,我希望这里的人能给我一个解释。

这可能是因为EditorFor syntax试图从x=>x中提供的属性中生成一个ID和一个名称……他们可能没有预料到有人会使用x.Foo[0]。在其中,但正如我所记得的,他们确实预料到x.Foo.Bar会起作用