2013-05-09 140 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

基本上二進制數據發送&沒有名稱/變量接收。

相關問題