如何通过asp.net mvc中的xmlhttprequest发送blob数据

我正在通过Xhr发送blob数据。 但我没有在控制器中获取blob数据

我写的代码如下:

 var url = "Home/Content" var oReq = new XMLHttpRequest(); oReq.open("POST", url, true); var blob = new Blob(['abc123'], {type: 'text/plain'}); oReq.send("data="+blob); 

在我已定义的控制器中:

 public ActionResult Content(string data) { return Json("suc", JsonRequestBehavior.AllowGet); } 

但我检索的data为空。 我做错了什么。

我已经解决了这个问题。 您正在将二进制数据发送到mvc控制器方法,并且在该方法中您将获取二进制值作为字符串请注意,如果您要使用应该使用的保存方法,这是问题的主要原因

 var fileContent = window.btoa(blob); oReq.send(JSON.stringify({data: fileContent})); 

所以在你的服务器端方法

 byte[] fileByte = Convert.FromBase64String(fileContent); 

客户端改变

 oReq.send("data="+blob); 

 oReq.send(blob); 

Serverside集团/控制器

 public ActionResult Upload() { var r = Request; byte[] ba = r.BinaryRead(r.ContentLength); ... } 

JavaScript可以传输二进制数据。 看到这里 。

基本上二进制数据是在没有名称/变量的情况下发送和接收的。