我在将值绑定到下拉列表时遇到问题。
型
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
对象的列表,因此其属性(正如人们可以想象的那样(是Key
和Value
。