我找到了几个答案(例如here),但它们似乎无法解决我的问题。
var result = {
command: 'exportWAV',
type: type
};
$.ajax({
url: 'SubmitSound',
type: 'Post',
data: JSON.stringify(result),
contentType: 'application/json; charset=utf-8',
success: function (msg) {
alert(msg);
}
});
后端代码
[HttpPost]
public ActionResult SubmitSound(string blob)
{
// Create the new, empty data file.
string fileName = AppDomain.CurrentDomain.BaseDirectory + "/Content/Sound/" + Environment.TickCount + ".wav";
FileStream fs = new FileStream(fileName, FileMode.CreateNew);
BinaryWriter w = new BinaryWriter(fs);
w.Write(blob);
w.Close();
fs.Close();
return new JsonResult() { Data = "Saved successfully" };
}
result
不为空,因为this.postMessage = result;
将文件发送回客户端进行下载。 w.Write(blob)
一直抱怨blob
不能null
。
我怎样才能让它发挥作用?谢谢你和最好的问候
答案 0 :(得分:0)
这样做:
data: JSON.stringify({ blob: result}),
您可能希望更改控制器操作中的string
参数,以获取具有相同JSON结构的对象...这意味着相同的属性名称。
对象应该是这样的:
public class MyBlob{
public string command {get; set;}
public string type {get; set;}
}
所以,你的行动应该是:
public ActionResult SubmitSound(MyBlob blob){
//Here your action logic
}