首页 > 解决方案 > 在淘汰赛中从 Enum 中获取价值

问题描述

在我的控制器中,我创建了类似的方法

[HttpGet]
    public IEnumerable<MyEnum> GetMyEnum()
    {
        return Enum.GetValues(typeof(MyEnum)).Cast<MyEnum>();
    }

然后在我的淘汰赛中,我试图让它像

  $.getJSON(BASE_PATH + 'mycontroller/GetMyEnum', function (data) {

            $.each(data, function (key, value) {
                self.myEnumbservable.push({ "key": key, "value": value });
            });

        });

这是枚举

  public enum TypeOfGoodsEnum
{
    Cat= 10, 
    Dog= 20

}

我能够击中控制器,但在淘汰赛中我没有得到任何东西。有人可以指导我。我是新手。

标签: c#knockout.jscontroller

解决方案


您可以返回字典以实现您在此处尝试执行的操作:

[HttpGet]
public IDictionary<string, int> GetMyEnum()
{
    return Enum.GetValues(typeof(MyEnum))
            .Cast<MyEnum>()
            .ToDictionary(t => t.ToString(), t => (int)t);
}

此外,您必须编辑淘汰赛部分:

 $.getJSON(BASE_PATH + 'mycontroller/GetMyEnum', function (data) {
        var enumArray = [];
        $.each(data, function (key, value) {
            enumArray.push({ "key": key, "value": value });
        });
        self.myEnumbservable(enumArray);
    });

推荐阅读