通过web api上传文件的正确javascript调用

通过web api上传文件的正确javascript调用,javascript,c#,jquery,ajax,webapi,Javascript,C#,Jquery,Ajax,Webapi,我有一个javascript函数,如下所示: function uploadFiles(PIRid) { var fileInput = $('#incidentFiles'); var fileCount = fileInput[0].files.length; for (i = 0; i < fileCount; i++){ var Obj = new Object(); Obj.Name = fileInput[0].files[i].name; var r

我有一个javascript函数,如下所示:

function uploadFiles(PIRid) {
var fileInput = $('#incidentFiles');

var fileCount = fileInput[0].files.length;
for (i = 0; i < fileCount; i++){
    var Obj = new Object();
    Obj.Name = fileInput[0].files[i].name;
    var reader = new FileReader();
    Obj.File = reader.readAsBinaryString(fileInput[0].files[i]);
    Obj.PIRid = PIRid;
    Obj.RemoteID = RemoteID;
    var data = JSON.stringify(Obj);
    $.ajax({
        type: "POST",
        url: BaseHref + "/api/PIRfiles/",
        data: data,
        contentType: "application/json; charset=UTF-8",
        success: function (response) {
            $('#SaveSuccess').modal();
        },
        error: function (e) {
            $('#SaveFailure').modal();
        }
    });
}

调用已通过,但物理文件为空。我缺少什么?

在哪里运行?您将文件作为字符串发送,但您的文件属性是
byte[]file。将属性更改为字符串或。使用object.@evolutionxbox-不确定我是否正确理解这个问题,但它是在Azure上运行的,将文件存储在db@Eldar-那么这对接收代码的c#部分意味着什么?要接收Formdata,我必须更改当前设置中的哪些内容?如果需要,我可以发布控制器的副本needed@user566095它是否在节点中运行?还是在浏览器中?
public class ApiPIRfile
{
    public string Name;
    public byte[] File;
    public string PIRid;
    public string RemoteID;
}