将枚举名称绑定到DataTextField

时间:2014-07-24 14:36:45

标签: c# asp.net-mvc razor enums kendo-ui

我正在使用Razor将IEnumerable对象绑定到Kendo ComboBox,但在填充正确的DataTextField值时遇到一些麻烦。

模型

public class LanguageInformation
    {
        public Languages Language { get; set; }
        public int LanguageId { get; set; }
    }

语言枚举

public enum Languages
    {
        English = 1,
        Spanish = 2,
        French = 3,
        German = 4
    }

剃刀

@(Html.Kendo().ComboBox()
    .Name("Language")
    .DataTextField("Language")
    .DataValueField("LanguageId")
)

(注意:数据源已定义且返回数据很好,上面没有包含它)

我遇到的问题是DataTextField。我想要语言的名称枚举,但我不知道如何返回它。

我尝试了一些不同的东西,比如

.DataTextField(Enum.GetName(typeof(Languages), "Language"))

但结果是

  

传入的值必须是枚举基础

错误

那么,如何将枚举值的名称作为DataTextField返回?

1 个答案:

答案 0 :(得分:0)

Kendo传统上不会绑定到枚举,而是绑定到列表。 您可以使用以下代码从Enum中创建一个列表。

@(Html.Kendo().ComboBox()
    .Name("Language")
    .BindTo(Enum.GetNames(typeof(Languages)).ToList()
)