2011-03-18 83 views
0

我有一個Ajax表單,它加載了幾個文件;問題是Request.Files總是空的。我找不到任何關於它的東西,所以就是這樣。Ajax表單不會加載文件

<%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

您無法使用AJAX表單上傳文件。爲了上傳文件,您需要使用正常的Html.BeginForm。這是因爲當發送AJAX請求時,multipart/form-data不再受到尊重。同樣使用JavaScript,您無法訪問文件內容以便將其發送到服務器。有一些插件可以讓你實現這一點。例如,jquery form plugin通過生成隱藏的iframe來支持AJAX uploadsUploadify是另一個使用Flash的流行插件。

+0

我的表單處於模態對話框,所以我不能回到Html.BeginForm;整個過程就是在沒有回傳的情況下執行編輯。我們不使用jQuery表單,所以我會嘗試一下uploadify。 – Liz 2011-03-23 11:25:17

+0

這是否意味着,如果我嘗試上傳帶有常見表單的文件,啓動使用xmlhttp的JavaScript函數併發送POST,那麼我將無法執行該操作? =( – 2015-03-07 19:11:50