如何在Javascript中使用C#枚举

5
在我的C#代码中有一个枚举,我想在jQuery验证规则中从枚举中获取名称。 枚举:
public enum EnumItemField
{
    Zero = 0,
    One = 1,
    Two = 2,
    Three = 3,
    Four = 4,
    Five = 5,
} 

验证:

function updateFieldStatus() {
}

$(document).ready(function () {
$("#IntegrationService").validate({
    rules: {
        //Set range of Start
        "config.EnumFormat[Zero].Start": {
            required: true,
            digits: true,
            range: [1, 200]
        },
        "config.EnumFormat[One].Start": {
            required: true,
            digits: true,        
            range: [1, 200]
        },
    },
    submitHandler: function () {
        MsgBoxService.show({
            //setId: "saveload",
            //objectId: "asrun"
        });
    },
}); 

这个确实有效,但我想做出类似这样的东西:
"config.EnumFormat[" + item + "].Start": {
    required: true,
    digits: true,
    range: [1, 200]
}

在C#中,我可以通过以下方式获取名称:
foreach (var item in Enum.GetNames(typeof(EnumItemField)))

如何在JavaScript中实现?感谢您的建议!

嗨,str_str,请检查我的答案,如果需要更多帮助,请告诉我! - Praveen Kumar Purushothaman
我不知道为什么你的答案不起作用。 - str_str
变量未被识别,可能是我做错了什么? - str_str
请上传截图!这太疯狂了,看起来不像是 JavaScript 错误。您确定需要使用 JavaScript 吗? - Praveen Kumar Purushothaman
魔法,问题解决了。感谢您的帮助! - str_str
1个回答

6
你可以使用JavaScript对象来创建相同的东西。
EnumItemField = {
    "Zero": 0,
    "One": 1,
    "Two": 2,
    "Three": 3,
    "Four": 4,
    "Five": 5
}

请不要忘记删除最后一个逗号,
您可以使用以下值:
EnumItemField.Zero     // 0
EnumItemField["Zero"]  // 0

迭代?没问题:

for (var item in EnumItemField) {
  item;                // Zero
  EnumItemField[item]; // 0
}

@MatíasFidemraizer 好的,没问题。:) - Praveen Kumar Purushothaman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接