JQuery Ajax Formulaire avec envoi de Fichier ne fonctionne pas sous IE

Je suis en utilisant Jquery Ajax Formulaire de télécharger des fichiers, qui fonctionne bien dans Chrome et Firefox, mais il ne marche pas sous IE. Il pop-ups, une fenêtre me disant enregistrer le fichier que je suis en train de télécharger.

Voici un exemple de mon code, si nécessaire, le rite est ici:
HTML:

<div class="addNewDocumentContent">
<form id="AddNewDocForm" action="@Url.Action("AddNewDocument", "BidForm")" enctype="multipart/form-data" method="post">
<div>
    <input name="File" type="file" style="width: 80%;" />
</div>
<div>
    <label>
        @Labels.Name</label>
    <input type="text" name="Name" style="width: 80%;" />
</div>
<div style="text-align: right;">
    <button type="button" name="Back" value="Back">
       @Buttons.GoBack
    </button>
    <button type="submit" name="Add" value="Back">
        @Buttons.Add
    </button>
</div>
</form>

JS:

//Document Ready=============================================================================
$(function () { 

    $('#AddNewDocForm').ajaxForm({
        type: 'POST',
        beforeSubmit: function () {
            return $("#AddNewDocForm").valid();
        },
        success: function (documents) {
            FillDocuments(documents);
            $('#dialogAddNewDocument').dialog('close');
        }
    });
});
//Validate====================================================================================
//Validation=====================================================================================
$(function () {
    $("#AddNewDocForm").validate({
        ignore: ":not(:visible)",
        rules: {
            File: "required",
            Name: "required"
        }
    });
});
//=========================================================================================

Action

[HttpPost]
public JsonResult AddNewDocument(DocumentModel document)
{
if (ModelState.IsValid)
{
List<DocumentModel> documents = null;
if (Session["Documents"] != null)
{
documents = (List<DocumentModel>)Session["Documents"];
var doc = documents.OrderByDescending(x => x.Number).Take(1).FirstOrDefault();
document.Number = doc != null ? doc.Number + 1 : 1;
document.FileName = document.File != null ? document.File.FileName : document.FileName;
documents.Add(document);
}
else
{
documents = new List<DocumentModel>();
document.Number = 1;
document.FileName = document.File != null ? document.File.FileName : document.FileName;
documents.Add(document);
Session["Documents"] = documents;
}
var displaydocs = documents.Select(x => new
{
Name = x.Name,
Number = x.Number,
File = x.File != null ? x.File.FileName : x.FileName,
Route = x.Route != null ? x.Route : "#",
});
return Json(displaydocs, JsonRequestBehavior.AllowGet);
}
else
{
return null;
}
}

et enfin modèle:

  public class DocumentModel
{
public int Number { get; set; }
[Required]
public string Name { get; set; }
[Required]
public HttpPostedFileBase File { get; set; }
public string FileName { get; set; }
public string Route { get; set; }
}

Encore une fois, il fonctionne dans tous les navigateurs sauf IE8. Im probablement pas le seul, mais je nai pas trouvé de réponse.

OriginalL'auteur Morgan Soren | 2012-06-27