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進來空。
作爲一種調試手段,我建議你也使用協議peeker來確保參數進入你的服務器時是正確的。如果客戶端是PC,則可以使用Fiddler。 – 2010-07-01 15:15:14
你的字節數組在js中是一個實際的數組類型嗎?你有沒有嘗試使你的頁面方法中的byteArrayObj變爲byte []而不是System.Object? – 2010-07-01 22:48:56