具有 @Html.DropDownListFor 的数据绑定异常



我在将值绑定到下拉列表时遇到问题。

public class DummyModel
{
    ...
    public int? OptionID { get; set; }
    ...
}

视图中的线条导致异常

@Html.DropDownListFor(model => model.OptionID, new SelectList(ViewBag.AvailableOptions, "ID", "Name"))

ViewBag 的内容

?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.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对象的列表,因此其属性(正如人们可以想象的那样(是KeyValue

最新更新