Model view controller 剑道下拉列表bindto enum-文本字符串数据int

Model view controller 剑道下拉列表bindto enum-文本字符串数据int,model-view-controller,kendo-ui,dropdown,Model View Controller,Kendo Ui,Dropdown,我正在为我的m型车使用以下代码: 这很好,但当然不是很友好。我想显示字符串值,但发送int值 使用.BindTo(Enum.GetNames(typeof(Enum1)).ToList()) 没有帮助,因为我需要发送实际的int值 使用.BindTo(新列表{…} 我还需要对需要为int的值调用.toString() 我该怎么办?将枚举转换为字典,并将结果绑定到下拉列表 .DataTextField("Value") .DataValueField("Key") .BindTo(Enum.Get

我正在为我的m型车使用以下代码:

这很好,但当然不是很友好。我想显示字符串值,但发送int值

使用.BindTo(Enum.GetNames(typeof(Enum1)).ToList()) 没有帮助,因为我需要发送实际的int值

使用.BindTo(新列表{…} 我还需要对需要为int的值调用.toString()


我该怎么办?

将枚举转换为字典,并将结果绑定到下拉列表

.DataTextField("Value")
.DataValueField("Key")
.BindTo(Enum.GetValues(typeof(*Enum1*)).Cast<*Enum1*>().ToDictionary(e => (int)e, e => e.ToString() );
.DataTextField(“值”)
.DataValueField(“键”)
.BindTo(Enum.GetValues(typeof(*Enum1*)).Cast().ToDictionary(e=>(int)e,e=>e.ToString());

希望这有帮助。祝你好运。

是否可以将字符串值发送到服务器,并在服务器上转换为int…?我也已经考虑过了。但是我正在一个表单中编辑viewmodel,其中dropdownlist是其中的一部分。因此,我的控制器需要一个viewmodel作为输入参数。通过发送带有无效参数的表单(string)值,则相应的模型属性将自动设置为默认值。控制器方法在第一个位置没有接收到错误的字符串值,因此无法强制转换它。cool idea thx!但不幸的是,这不起作用:键入“System.Collections.Generic.Dictionary”2[[System.Int32,mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089],[System.String,mscorlib,版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089]]“”对于字典的序列化/反序列化不受支持,键必须是字符串或对象。您可以将键值设置为字符串,而不是强制转换为int值。
.DataTextField("Value")
.DataValueField("Key")
.BindTo(Enum.GetValues(typeof(*Enum1*)).Cast<*Enum1*>().ToDictionary(e => (int)e, e => e.ToString() );