2009-05-07 8 views
1

Ok, ça me rend fou. J'ai essayé de comprendre cela pour toujours maintenant. Je veux effectuer un téléchargement asynchrone en utilisant ajaxFileUpload. Je l'ai posté le fichier à mon contrôleur juste bien, cependant, quand j'essaye de renvoyer un JsonResult de lui, j'obtiens un "Enregistrer le fichier sous" boîte de dialogue. J'ai tout essayé pour contourner cela et je reçois soit une erreur ou la boîte de dialogue "Enregistrer sous". Je suppose que cela a quelque chose à voir avec le type de contenu qui est transmis lorsque le fichier est posté. Je serais grandement reconnaissant si quelqu'un pouvait aider. Merci d'avance!ASP.NET MVC et AjaxFileUpload

Répondre

1

Salut espérons que le lien suivant vous aidera à contenir le fichier vidéo ajax entier avec asp.net mvc.

http://stephenwalther.com/blog/archive/2008/10/03/asp-net-mvc-application-building-family-video-website-5-multiple-file-upload-with-progress.aspx

+0

Je vous remercie de la réponse rapide, cependant, la démo que vous avez fournie utilise silverlight pour fournir la capacité de téléchargement. Im essayant de créer la fonctionnalité de téléchargement d'ajax sans exiger à l'utilisateur de télécharger un plugin (aussi pourquoi je n'ai pas implémenté SWFUpload). –

1

Si vous regardez le code là, il est en fait la création d'une nouvelle forme et iframe, et alors la forme POSTer à l'iframe. La réponse est écrite dans l'iframe, que le code récupère et renvoie. Je suppose que si vous chargiez JsonResult directement dans un navigateur, la même boîte de téléchargement apparaîtrait. Vérifiez les en-têtes qui sont retournés avec JsonResult pour voir pourquoi quand il est chargé en tant que page, il pense que c'est un téléchargement. Peut-être que vous devez définir le type de contenu en tant que texte/plain ou supprimer un en-tête Content-Disposition.

5

J'ai eu le même problème et je l'ai résolu avec

public ContentResult UploadFile(FormCollection form, ... 


    return Content("{success: false, ErrorMsg: 'someerror'}"); 
+0

votre solution a fonctionné pour moi aussi .... merci pour le partage :-) – Raja

1

Dans votre contrôleur inclure uniquement "text/x-JSON" comme ceci:

public JsonResult UploadFile(FormCollection form, ... 


    return Json("{id: xxxx, text: 'bla bla bla'}", "text/x-json");