2010-07-01 89 views
0

我需要從JavaScript發送一個字節數組到一個C#頁面方法。 int和字符串變量工作正常,但是當我通過c#代碼時,即使我檢查它是否在JS中有值,字節數組的「對象」也是null。如何通過Javascript將對象(byteArray)發送到AJAX PageMethod?

 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進來空。

+0

作爲一種調試手段,我建議你也使用協議peeker來確保參數進入你的服務器時是正確的。如果客戶端是PC,則可以使用Fiddler。 – 2010-07-01 15:15:14

+0

你的字節數組在js中是一個實際的數組類型嗎?你有沒有嘗試使你的頁面方法中的byteArrayObj變爲byte []而不是System.Object? – 2010-07-01 22:48:56

回答

0

事實證明,使用回傳是繼續下去的方法。無論如何,它並不需要異步。感謝您的評論。