剑道下拉绑定

时间:2016-09-28 11:05:02

标签: data-binding enums kendo-ui dropdown

我有这个枚举:

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)但也没有运气

1 个答案:

答案 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 --"))