我的网络方法收到一个枚举参数。我知道从客户端我可以发送一个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函数或服务器方法中执行某些操作,或者在两者中执行某些操作?
答案 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就可以了。因此,序列化器可以自行处理转换。我应该检查然后问这个问题,但我绝不相信这可能是真的。