Ajax表单不加载文件

时间:2011-03-18 08:45:18

标签: ajax asp.net-mvc-2 file upload

我有一个Ajax表单,它加载了几个文件;问题是Request.Files总是空的。我找不到任何关于它的信息,所以就在这里。

<%using (Ajax.BeginForm("Edit", "Manage", FormMethod.Post,
    new AjaxOptions{ OnComplete = "OnSaveEditSuccess" },
    new { enctype="multipart/form-data", id = "form_Edit", name = "form_Edit" }))
{%>
    /* ... */
    <input type="file" id="CCTranscripts_fileId" name="CCTranscripts_fileId" 
        onchange="ValidateUploadFile('CCTranscripts_file', this.value);" />
    /* ... */
<% } %> <%-- end form --%>

1 个答案:

答案 0 :(得分:1)

您无法使用AJAX表格上传文件。要上传文件,您需要使用普通Html.BeginForm。这是因为当发送AJAX请求时,multipart/form-data不再受到尊重。同样使用javascript,您无法访问文件内容以便将其发送到服务器。有一些插件可以让你实现这一目标。例如,jquery form plugin通过生成隐藏的iframe来支持AJAX uploadsUploadify是另一个使用Flash的流行插件。