Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过Javascript将对象(byteArray)发送到AJAX页面方法?_C#_Asp.net_Javascript_Ajax - Fatal编程技术网

C# 如何通过Javascript将对象(byteArray)发送到AJAX页面方法?

C# 如何通过Javascript将对象(byteArray)发送到AJAX页面方法?,c#,asp.net,javascript,ajax,C#,Asp.net,Javascript,Ajax,我需要将一个字节数组从javascript发送到一个c#page方法中。int和string变量可以很好地工作,但是当我逐步执行c#代码时,作为字节数组的“object”是空的,尽管我检查了它在JS中是否有值 var byteArrayObj = GetBinaryDataFromFile(filePath); var tranAttachmentName = filePath.replace(/^.*\\/, ''); PageMethods.AddFileTo

我需要将一个字节数组从javascript发送到一个c#page方法中。int和string变量可以很好地工作,但是当我逐步执行c#代码时,作为字节数组的“object”是空的,尽管我检查了它在JS中是否有值

     var byteArrayObj = GetBinaryDataFromFile(filePath);

     var tranAttachmentName = filePath.replace(/^.*\\/, '');
     PageMethods.AddFileToTran(tranId, tranAttachmentName, byteArrayObj, RefreshPage, onTimeout, onError);


     function GetBinaryDataFromFile(strFileName)
     {
         var streamObj = new ActiveXObject("ADODB.Stream");
         streamObj.Type = 1;
         streamObj.Open();
         streamObj.LoadFromFile(strFileName);
         var ByteArray = streamObj.Read();
         streamObj.Close();


         return(ByteArray);
     }  
c#代码:

    [System.Web.Services.WebMethod]
    public bool AddFileToTran(int tranId, string tranAttachmentName, object byteArrayObj)
    {
        DBConnector dbConnectorObj = new DBConnector("cnnDataTracking");
        try
        { ........

byteArrayObj对象为空。

事实证明,使用回发是实现这一点的方法。它不需要是异步的。感谢您的评论。

作为调试帮助,我建议您也使用协议窥视器来确保参数进入服务器时正确无误。如果客户端是PC,则可以使用Fiddler。js中的字节数组是实际的数组类型吗?您是否尝试过将page方法中的byteArrayObj设置为byte[]而不是System.Object?