2011-03-18 5 views
0

J'ai un formulaire Ajax, qui charge plusieurs fichiers; le problème est que Request.Files est toujours vide. Je n'ai rien trouvé à ce sujet, alors c'est ici.Formulaire Ajax ne charge pas les fichiers

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

Répondre

1

Vous ne pouvez pas télécharger de fichiers à l'aide d'un formulaire AJAX. Afin de télécharger des fichiers, vous devez utiliser un Html.BeginForm normal. En effet, lorsqu'une requête AJAX est envoyée, le multipart/form-data n'est plus respecté. En utilisant javascript, vous ne pouvez pas accéder au contenu du fichier pour l'envoyer au serveur. Il y a quelques plugins qui vous permettent d'y parvenir. Par exemple le jquery form plugin prend en charge AJAX uploads en générant un iframe masqué. Uploadify est un autre plugin populaire qui utilise Flash.

+0

Mon formulaire est dans une boîte de dialogue modale, donc je ne peux pas revenir à un Html.BeginForm; le but était d'effectuer le montage sans publication. Nous n'utilisons pas de formulaire jQuery, donc je vais essayer de télécharger. – Liz

+0

Cela signifie-t-il que si j'essaye de télécharger un fichier avec un formulaire commun, en lançant une fonction JavaScript qui utilise xmlhttp et envoie un POST avec, je ne serai pas capable de le faire? = ( –

Questions connexes