2009-05-07 17 views
1

Ok, das macht mich verrückt. Ich habe versucht, das jetzt für immer herauszufinden. Ich möchte einen asynchronen Upload mit ajaxFileUpload durchführen. Ich habe es die Datei auf meinem Controller posten, aber wenn ich versuche, ein JsonResult von ihm zurückzugeben, erhalte ich ein "Datei speichern unter" -Dialogfeld. Ich habe alles versucht, um dies zu umgehen und ich bekomme entweder einen Fehler oder den "Speichern unter" -Dialog. Ich gehe davon aus, dass es etwas mit dem Inhaltstyp zu tun hat, der bei der Veröffentlichung der Datei übergeben wird. Ich wäre sehr dankbar, wenn jemand helfen könnte. Danke im Voraus!ASP.NET MVC und AjaxFileUpload

Antwort

1

Hallo hoffe, dass der folgende Link Ihnen helfen wird, es enthält das ganze Ajax-Datei-Upload-Video mit dem 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

ich die prompte Antwort jedoch erkennen, Die von Ihnen bereitgestellte Demo verwendet silverlight, um die Upload-Funktion bereitzustellen. Ich versuche, die Ajax-Upload-Funktionalität zu erstellen, ohne dass der Benutzer ein Plugin herunterladen muss (auch warum ich SWFUpload nicht implementiert habe). –

1

Wenn Sie den Code dort zu suchen, es zu schaffen tatsächlich eine neue Form und iframe, und dann POSTen das Formular auf der iframe. Die Antwort wird in den Iframe zurückgeschrieben, den der Code dann aufnimmt und zurückgibt. Ich nehme an, wenn Sie das JsonResult direkt in einen Browser geladen haben, würde es auch die gleiche Download-Box erscheinen lassen. Überprüfen Sie die Header, die mit dem JsonResult zurückgegeben werden, um zu sehen, warum es beim Laden als eine Seite für einen Download gehalten wird. Vielleicht müssen Sie den Content-Type als text/plain setzen oder einen Content-Disposition Header entfernen.

5

Ich hatte das gleiche Problem, und ich löste es mit

public ContentResult UploadFile(FormCollection form, ... 


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

Ihre Lösung hat auch für mich funktioniert .... Danke fürs Teilen :-) – Raja

1

In Ihrem Controller nur "text/x-json" wie folgt umfassen:

public JsonResult UploadFile(FormCollection form, ... 


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