我正在尝试将我视图中记录的音频blob传递给Controller。以下是我到目前为止所做的工作。
//控制器
[HttpPost]
public ActionResult Record(TestAudio data)
{
return View();
}
和TestAudio数据如下
public class TestAudio
{
public TestAudio()
{
UserDetails = new User();
}
public HttpPostedFileBase Sample;
public User UserDetails;
}
public class User
{
string UserName;
}
Jquery提交如下
$('#send').click(function () {
var answer = {
sample: recorded, // Where recorded is a variable containing my blob
userdetails : null
}
var data = new FormData();
data.append("data", answer);
debugger;
$.ajax({
type: 'POST',
url: '../home/record',
data: data,
//contentType: 'application/my-binary-type', // set to whatever you like
contentType: false,
processData: false
});
});
但是,我的控制器中的数据为null。如果我只使用HttpPostedFileBase作为Controller参数,它可以工作。但是当我使用像TestAudio这样的复杂参数时,它会失败。
有人可以指导我吗?
答案 0 :(得分:0)
我自己能找到答案。思想会在这里分享,以防其他人需要
var data = new FormData();
data.append("sample", blob);
data.append("userdetails", userdetails);
基本上结束了将它作为单独的表单数据元素。这样做的伎俩。