我有一个小表格,可以让用户上传一个文件。形式如下。

<form action="/Interviews/Create" enctype="multipart/form-data" id="createInterviewForm" method="post">
<div class="form-group">
    <div class="col-xs-6">
        <label>File Upload:</label>
        <input type="file" id="txtInterviewUploadFile">
    </div>
</div>
</div>
<div class="form-group">
    <div class="col-md-10">
        <input type="submit" value="Create" class="btn btn-primary" />
        <input type="submit" value="Cancelar" class="btn btn-primary" id="btnCancelInterviewCreation" />
    </div>
</div>




我正在通过ajax上传文件,因此我有以下代码

$("form#createInterviewForm").submit(function (e) {
        e.preventDefault();

        var fd = new FormData($(this)[0]);

        $.ajax({
            url: '/Interviews/AjaxCreate',
            data: fd,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function (data) {
                alert(data);
            }
        });
    });


在我的控制器上,我有这样的东西

[HttpPost]
public JsonResult AjaxCreate(??What datatype??  postedData)
{
    return Json(true);
}


问题
当我提交时,该帖子到达了我的控制者。我的问题是我似乎无法弄清FormData的对象类型是什么。谁能帮我吗?

最佳答案

所以我终于让它工作了。这就是我所做的:

在ajax上,我有以下内容:

$("form#createInterviewForm").submit(function (e) {
        e.preventDefault();

        var formData = new FormData($(this)[0]);
        formData.append('file', $("#txtInterviewUploadFile")[0].files[0]);

        $.ajax({
            url: "/Interviews/AjaxCreate",
            type: 'POST',
            data: formData,
            contentType: false,
            processData: false,
            success: function (data) {
                alert(data)
            }
        });

        return false;
    });


这将发布所有表单输入和文件输入。

在控制器上,我要做的就是使用Request.Form [“ Key”]和Request.Files访问所有信息

关于jquery - C#-什么是FormData对象类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27922733/

10-13 03:18