将长代码的JavaScript数组传递给代码隐藏?
我已经从签名设备返回了这个对象,当我快速观察它时,它告诉我它是一个长数组,当我在我的代码隐藏(vb.net)中将它传递给web方法时,它什么也没有给我。 我需要一些帮助。。 注意:我正在使用activeX从设备捕获签名 这是javascript代码:将长代码的JavaScript数组传递给代码隐藏?,javascript,vb.net,arrays,activex,object,Javascript,Vb.net,Arrays,Activex,Object,我已经从签名设备返回了这个对象,当我快速观察它时,它告诉我它是一个长数组,当我在我的代码隐藏(vb.net)中将它传递给web方法时,它什么也没有给我。 我需要一些帮助。。 注意:我正在使用activeX从设备捕获签名 这是javascript代码: function OnSave() { var sign = document.FORM1.SigPlus1.SignatureString; PageMethods.Save(sign); } 这是我的webmethod
function OnSave() {
var sign = document.FORM1.SigPlus1.SignatureString;
PageMethods.Save(sign);
}
这是我的webmethod:
<WebMethod()> _
Public Shared Function Save(ByVal obj As Object) As String
Dim obj1 As New PFSIGNATURELib.SigniShellSignature
obj1.SignatureMime = obj
obj1.SaveBitmapToFile(System.AppDomain.CurrentDomain.BaseDirectory() & "\sign1.bmp", 200, 200)
Return "\sign1.bmp"
End Function
_
公共共享函数保存(ByVal obj作为对象)为字符串
Dim obj1作为新PFSIGNATURELib.SignatureShellSignature
obj1.SIGNATUREME=obj
obj1.SaveBitmapToFile(System.AppDomain.CurrentDomain.BaseDirectory()&“\sign1.bmp”,200200)
返回“\sign1.bmp”
端函数
我对ASP.Net了解不多,但似乎PageMethods.Save
函数无法处理长数组。另一种可能性是,符号
变量在javascript代码中为空
尝试添加
alert(sign);
在Javascript函数的中间,或者更好,安装firebug并执行以下操作
console.log(sign);
相反。通过这种方式,您将确保符号var实际上包含您认为它的功能
如果它确实包含一个数字数组(javascript没有long
类型),那么在调用PageMethods.Save
函数之前,可能需要将其转换为其他类型
例如,此javascript代码段将符号
转换为以空格分隔的数字字符串:
s = ""
for (i in sign) {
s += sign[i] + " ";
}
sign = s
如果您设法将此字符串传递给您的webmethod,则可以使用一些字符串解析来获取原始数组