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