C# @Html.DropDownListFor的数据绑定异常

C# @Html.DropDownListFor的数据绑定异常,c#,asp.net-mvc,C#,Asp.net Mvc,我无法将值绑定到下拉列表 型号 public class DummyModel { ... public int? OptionID { get; set; } ... } 视图中导致异常的行 @Html.DropDownListFor(model => model.OptionID, new SelectList(ViewBag.AvailableOptions, "ID", "Name")) 查看包的内容 ?ViewBag.AvailableOptions

我无法将值绑定到下拉列表

型号

public class DummyModel
{
    ...
    public int? OptionID { get; set; }
    ...
}
视图中导致异常的行

@Html.DropDownListFor(model => model.OptionID, new SelectList(ViewBag.AvailableOptions, "ID", "Name"))
查看包的内容

?ViewBag.AvailableOptions
Count = 4
    [0]: {[3, Average Speed]}
    [1]: {[4, Snails pace]}
    [2]: {[1, Super Fast]}
    [3]: {[2, Super Slow]}
生成的异常:

System.Web.HttpException:'DataBinding:'System.Collections.Generic.KeyValuePair`2[[System.Int32,mscorlib,Version=4.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,Version=4.0.0.0,Culture=neutral

如果(如注释/例外文本中所述),
ViewBag.AvailableOptions
是一个字典,则需要更改选择列表的Id和值属性,如下所示:

new SelectList(ViewBag.AvailableOptions, "Key", "Value")

由于字典在枚举时基本上是
KeyValuePair
对象的列表,因此它的属性是

请添加操作代码,以便我们可以看到您分配给
查看包的内容。可用选项
查看包中的类型。可用选项?该类型似乎是一个字典。谢谢您,弗朗西斯!这是我所期望的工作方式。