Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务器到客户端BSON兼容性_Javascript_Asp.net_Asp.net Core_Vuejs2_Bson - Fatal编程技术网

Javascript 服务器到客户端BSON兼容性

Javascript 服务器到客户端BSON兼容性,javascript,asp.net,asp.net-core,vuejs2,bson,Javascript,Asp.net,Asp.net Core,Vuejs2,Bson,我正在从事一个ASP.NET核心MVC项目,该项目使用客户端框架(VueJS)。它将不是一个SPA,而是一个多SPA解决方案,每个控制器都可以有自己的小客户端应用程序 除了一件事,一切都很好。我试图通过直接在ASP.NET视图文件中将ASP.NET模型序列化为json/bson,向客户机提供初始数据 当我使用JSON格式时,它可以正常工作: <script> var ServerModel = @Json.Serialize(Model); </script>

我正在从事一个ASP.NET核心MVC项目,该项目使用客户端框架(VueJS)。它将不是一个SPA,而是一个多SPA解决方案,每个控制器都可以有自己的小客户端应用程序

除了一件事,一切都很好。我试图通过直接在ASP.NET视图文件中将ASP.NET模型序列化为json/bson,向客户机提供初始数据

当我使用JSON格式时,它可以正常工作:

<script>
   var ServerModel = @Json.Serialize(Model);
</script>

var ServerModel=@Json.Serialize(Model);
这会将整个模型作为纯文本呈现到html源代码中。现在我尝试使用BSON格式对其进行编码。在服务器端,我使用Newtonsoft库,它提供了BSON序列化程序功能:

如何使用客户端javascript解码BSON字符串?我发现bson npm包:。但它似乎使用了不同的编码/解码类型,无法识别由Newtonsoft lib编码的bson字符串

Newtonsoft lib生成base64字符串:
Convert.ToBase64String(ms.ToArray())

bson npm包接受Uint8Array:
var doc_2=bson.deserialize(数据)


如何将服务器端模型编码为可由客户端js解码的BSON字符串?

BSON代表二进制JSON,因此不要在服务器端将其编码为Base64String,并将内容类型返回为application/BSON。将其编码为base64string对我来说毫无意义,您将失去bson的所有压缩优势。我会尝试将json数据呈现到视图中,这样我就不会只将数据作为应用程序/bson响应发送。将bson嵌入HTML页面不是一个好主意。为什么不让客户端在加载文档时对服务器进行XHR调用并提取JSON数据呢?对于所有后续操作,我都会这样做。我只为第一页加载寻找解决方案,以避免额外的XHR调用。