2013-05-09 66 views
1

我通过Xhr发送blob数据。但我不是在控制器中获取BLOB数据如何在asp.net中通过xmlhttprequest发送blob数据mvc

我已经写的代码:

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

data我正在检索:

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); 

在控制器我已经等被定义一片空白。我做错了什么。

+0

Actionresult => JsonResult? – Sakthivel 2013-05-09 05:23:27

+0

@codebrain我正在使用ActionResult – Jonathan 2013-05-09 05:31:33

回答

0

我已经解决了这个问题。 您发送二进制数据到MVC控制器的方法,并在该方法中,你所得到的二进制值的字符串注意这是问题的主要原因,如果你想使用保存方法,你应该使用

var fileContent = window.btoa(blob); 

oReq.send(JSON.stringify({data: fileContent})); 

所以在您的服务器端方法

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

客户端更改

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

oReq.send(blob); 

了Serverside /控制器

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

JavaScript可以传送二进制数据。见here

基本上二进制数据发送&没有名称/变量接收。

相关问题