javascript - .NET MVC 从 JSON Uint8Array 反序列化字节数组

标签 javascript asp.net-mvc-4

我在我的客户端 Web 应用程序上使用 js-scrypt ( https://github.com/tonyg/js-scrypt ) 对密码进行哈希处理和加盐处理,然后再将它们发布到我的服务器端 .NET MVC 应用程序以再次进行哈希处理和加盐处理。这个 JavaScript 库将字节数组实现为 JavaScript Uint8Arrays。如何让我的 MVC Controller 将我的 JSON Uint8Array 反序列化为 byte[]?

JavaScript 示例:(AJAX.Post 是我编写的库,myUint8Array 正确序列化)

AJAX.Post('www.example.com/SendByteArray', { myByteArray: myUint8Array }, Callback);

C# 示例:(在我的默认 Controller 中)

[HttpPost]
public async Task<JsonResult> SendByteArray(byte[] myByteArray) {

}

在此示例中,myByteArray 始终为空。我尝试了几种不同的方法,基于转换为字符串然后返回 byte[] 但我无法获得正确的值。如果我能以某种方式直接将代码实现到 .NET 的 JSON 反序列化器中,以便上面的代码完全按原样工作,那将是非常可取的,因为我还有一些其他项目,如果我可以直接在它们之间传递字节数组,我可以做一些很酷的事情服务器端和客户端应用程序。

最佳答案

目前我唯一可以开始工作的方法是对 Uint8Array 进行 base64 编码,在 C# 中将其捕获为字符串,然后将该字符串转换为 byte[]。

JavaScript:

AJAX.Post('www.example.com/SendByteArray', { strByteArray: btoa(String.fromCharCode.apply(null, myUint8Array)) }, Callback);

C#:

[HttpPost]
public async Task<JsonResult> SendByteArray(string strByteArray) {
    byte[] myByteArray = Convert.FromBase64String(strByteArray);
}

关于javascript - .NET MVC 从 JSON Uint8Array 反序列化字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17845032/

相关文章:

javascript - 结果总是分页时的服务器端分页

javascript - 离线使用谷歌地图(Js Api)

javascript - 防止 Controller 中的文本提交失败

c# - MVC4 无法将对象属性从 AJAX POST 映射到 JSON

c# - 如何在 Web API 中传递可选参数

javascript - 遍历嵌套的对象数组

javascript - jQuery 数据表 : Set a search filter for a named column upon initialization

jquery - ASP.Net MVC 4 动态加载 css 文件

asp.net-mvc-4 - 如何从 Glimpse 获取时间线数据以进行报告?

c# - 无法让 asp.net MVC4 DropDownList() 具有预设值