2

我的 web 方法接收一个枚举参数。我知道从客户端我可以发送一个 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 函数或服务器方法中做某事,还是两者都做?

4

2 回答 2

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)
      {

      }
}
于 2012-12-25T06:43:07.257 回答
0

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

于 2012-12-25T07:00:46.553 回答