我有这个枚举:
public enum PayTerms
{
[Display(Name = "30")]
_30 = 1,
[Display(Name = "60")]
_60,
[Display(Name = "90")]
_90,
[Display(Name = "120")]
_120,
CAD
}
使用此模板,我设法创建具有正确名称的下拉列表:
@model PayTerms?
<div class="k-edit-label">@Html.LabelFor(x => x)</div>
<div class="k-edit-field">
@(Html.Kendo().DropDownListFor(m => m)
.BindTo(EnumHelper.GetSelectList(typeof(PayTerms)))
.OptionLabel("-- Select --"))
</div>
但我遇到绑定问题。目前,对于我的枚举属性的每个值,下拉列表中的选定值为“--Select--” 如何将选定值绑定到枚举值?
更新:
我也试过EnumHelper.GetSelectList(typeof(Erp.Shared.Contract.PayTerms), Model.Value)
但也没有运气
答案 0 :(得分:2)
Kendo MVC帮助器存在枚举问题,因为它无法确定是否绑定到枚举的整数表示或字符串表示。默认的MVC下拉列表没有这样的问题。
http://www.telerik.com/forums/problem-binding-enum-to-dropdownlist#ZabuB0_2A0OserEwBh_etQ
尝试将明确的.Value()添加到定义中:
@(Html.Kendo().DropDownListFor(m => m)
.BindTo(EnumHelper.GetSelectList(typeof(PayTerms)))
.Value(((int) Model).ToString())
.OptionLabel("-- Select --"))