如何通过Javascript将对象(byteArray)发送到AJAX PageMethod?

时间:2010-07-01 15:06:06

标签: c# asp.net javascript ajax

我需要从javascript发送一个字节数组到c#page方法。 int和string变量工作正常,但是当我逐步执行c#代码时,作为字节数组的“对象”为null,即使我检查它是否在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#c​​ode:

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

对象byteArrayObj为空。

1 个答案:

答案 0 :(得分:0)

事实证明使用回发是继续这样做的方法。无论如何,它不需要是异步的。感谢您的评论。