2016-09-28 122 views
0

我有這樣的枚舉:劍道下拉結合

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--」 如何將下拉列表中的選定值綁定到枚舉值?

UPDATE:

而且我已經試過EnumHelper.GetSelectList(typeof(Erp.Shared.Contract.PayTerms), Model.Value)也沒有運氣

回答

2

劍道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 --"))