c# - 通过 JSON 对象将 session 对象中的字节数组传递给 Web 服务(Asp.Net 2.0 asmx)

标签 c# asp.net json web-services

我有一个代码:

Session["timestamp"] 中有一个字节数组,使用 LInq to Entity

现在当我调用这个函数时它抛出一个错误

Web 服务的签名如下:

[WebMethod]
public  string IsRowChanged(int en_id , byte[] timestamp)
{
}

如果我将 byte[] 替换为 string 就可以了。

$.ajax({
    type: "POST",
    url: "UpdateEntityService.asmx/IsRowChanged",
    data: "{ 'en_id':'" + '<%= Request.QueryString["entity_id"] == null ? "1" : Request.QueryString["entity_id"] %>' + "' , 'timestamp': '" + '<%= (Session["timestamp"]) %>' + "'   }",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) {

        var result = msg.d;

        if (result == "0") {

            save_valid();

            $.prompt("Data Saved Sucessfully");

        }
        else {

            $.prompt("Data Concurrency Error! Reload the Page.. by pressing F5");

        }

    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus);
        alert(textStatus);
        alert(errorThrown);
    }
});

感谢任何帮助。

最佳答案

您应该对二进制数据进行 Base 编码,然后在服务器端将其转换回 byte[]。

// returns a byte[]
System.Convert.FromBase64String(base64String);
// returns a string
System.Convert.ToBase64String(byteData);

关于c# - 通过 JSON 对象将 session 对象中的字节数组传递给 Web 服务(Asp.Net 2.0 asmx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802681/

相关文章:

json - 如何在 Sencha Touch 2 中使用 Sqlite

java - Jersey JSON 从驼峰大小写转换为下划线(蛇形大小写)

jQuery ajaxForm 返回 .json 文件

java - 在 gRPC 中使用直接类以避免数据复制

c# - 测试 Entity Framework 数据库连接

c# - Pinvoke - 来自 C++ 的回调,在函数之间传递的数组具有意外大小

c# - 使用 StringBuilder 和 DataSet 构建动态表

javascript - Page_ClientValidate 返回 false 但没有一个验证器有错误

c# - 使用 Entity Framework 时,POCO 是正确的选择吗?

c# - 使用 C#、asp.net 插入 Outlook 约会