C# 如何通过Javascript将对象(byteArray)发送到AJAX页面方法?
我需要将一个字节数组从javascript发送到一个c#page方法中。int和string变量可以很好地工作,但是当我逐步执行c#代码时,作为字节数组的“object”是空的,尽管我检查了它在JS中是否有值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
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?