在进行AJAX调用时,我在何时何地将int转换为枚举

时间:2012-12-25 06:39:11

标签: asp.net ajax json enums

我的网络方法收到一个枚举参数。我知道从客户端我可以发送一个int,然后将其转换为枚举。但我不清楚我何时或何地进行这次演员表演?假设我有以下服务器方法:

[WebMethod]
 public static void MethodThatReceivesAnEnum(enum myEnum)
 { }

这是AJAX电话:

function enumTest(){
var enumArgument=1;
$.ajax({        
    type: "POST",
    url: "Ajax.aspx/MethodThatReceivesAnEnum",
    data: JSON.stringify({ myEnum:enumArgument }),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success:function(){}});
}

我是否必须在JavaScript函数或服务器方法中执行某些操作,或者在两者中执行某些操作?

2 个答案:

答案 0 :(得分:1)

当您传递number (int) from javascript时,您可以在服务器上接收int并将其转换为您的枚举。

public static void MethodThatReceivesAnEnum(int myEnumValue)
{ 
    YourEnum foo = (YourEnum)myEnumValue;
}

enum具有整数兼容类型,您可以尝试向其发送值并检查您是否获得了正确的对象。

public static void MethodThatReceivesAnEnum(YourEnum myEnumValue)
{ 
      if(myEnumValue == YourEnum.SomeEquilantValue)
      {

      }
}

答案 1 :(得分:0)

令我惊讶的是,只为枚举参数发送一个int就可以了。因此,序列化器可以自行处理转换。我应该检查然后问这个问题,但我绝不相信这可能是真的。