Datei-Upload mit MVC 4 mit Ajax

Ich entwickle Web-Anwendung mit MVC 4 + VS 2012 + Framework 4.5.

Ich habe drei Teilansichten, die dynamisch auf meiner Indexseite basierend auf Benutzeraktion rendern.

Von den drei Teilansichten hat eine Teilansicht die function ” Upload File mit einigen Eingabefeldern wie Textfeldern.

Problem:

Wenn der Benutzer auf die Schaltfläche Speichern klickt (die in der Teilansicht selbst vorhanden ist). Ich möchte das Eingabefeld in meine database speichern und die hochgeladene Datei im freigegebenen Ordner speichern.

Ich möchte dies mit Ajax implementieren (Nach dem Hochladen der Datei und Speichern von Daten, sollte der Benutzer in der gleichen Ansicht sein).

Wie kann ich das Gleiche umsetzen? JQuery Lösung wäre in Ordnung.

Ich habe es mit @Ajax.BeginForm aber nach dem Hochladen der Datei ist ein vollständiger Post-Back- @Ajax.BeginForm .

   

Hier ist mein kleines funktionierendes Beispiel, das mehrere Dateien hochlädt und in einen Ordner namens “Junk” hochlädt

Clientseite ….

    Upload Example           

Serverseite ....

 public class HomeController : Controller { [HttpPost] public void Upload( ) { for( int i = 0 ; i < Request.Files.Count ; i++ ) { var file = Request.Files[i]; var fileName = Path.GetFileName( file.FileName ); var path = Path.Combine( Server.MapPath( "~/Junk/" ) , fileName ); file.SaveAs( path ); } } } 

Dieser Artikel hat mir geholfen: http://www.matlus.com/html5-file-upload-with-progress/ Das ActionResult ist immer noch ActionResult Upload(HttpPostedFileBase file) {...}

 [HttpPost] public void Upload( ) { for( int i = 0 ; i < Request.Files.Count ; i++ ) { var file = Request.Files[i]; var fileName = Path.GetFileName( file.FileName ); var path = Path.Combine( Server.MapPath( "~/Junk/" ) , fileName ); file.SaveAs( path ); } }