首页 > 解决方案 > 在javascript中获取ENUM的整数值

问题描述

我的视图中有一个带有存储枚举值的下拉列表。

public enum UserRole
{
    ADMINISTRATOR = 1,
    APPROVER = 2,
    ORDER = 3
}

 @Html.DropDownListFor(model => model.New_User.Role , new SelectList(Enum.GetValues(typeof(soukohin.Models.Admin.UserRole))), "Select Role", new { @class = "form-control", @id = "new_role", @placeholder = "役割" , @onchange = "getRoleInformation(this)" })

选择值后,我想从 Javascript 中获取它的整数值。

我试过这段代码,但返回值是枚举的名称。

 function getRoleInformation(value) {
       alert(value.value);
    }

样本结果:ORDER

如何获取整数值,而不是枚举的名称?

标签: javascriptc#enums

解决方案


你给 ArrayList 构造函数基本上是一个字符串数组。

以下可能有效:

代替

new SelectList(Enum.GetValues(typeof(soukohin.Models.Admin.UserRole)))

new SelectList((new System.Collections.ArrayList(Enum.GetValues(typeof(soukohin.Models.Admin.UserRole)))).Cast<soukohin.Models.Admin.UserRole>().Select(e => new KeyValuePair<int,string>((int)e,e.ToString())).ToArray(),"Key","Value")

推荐阅读