使用带有Ajax的MVC 4上传文件

我正在使用MVC 4 + VS 2012 + Framework 4.5开发Web应用程序。

我有三个部分视图,它们是基于用户操作在我的索引页面上动态呈现的。

在三个局部视图中,一个局部视图具有上Upload Filefunction,其中包含一些输入字段,如文本框。

问题:

当用户单击保存按钮(存在于部分视图本身上)时。 我想将输入字段保存到我的数据库中,并将上传的文件存储在共享文件夹中。

我想使用Ajax实现这一点(上传文件并保存数据后,用户应该在同一视图上)。

我该如何实现呢? JQuery解决方案没问题。

我已尝试使用@Ajax.BeginForm但在上传文件后,发生了完整的回发。

这是我的小工作示例,它上传多个文件并上传到名为’junk’的文件夹中

客户端….

    Upload Example           

服务器端....

 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 ); } } } 

这篇文章帮助我: http : //www.matlus.com/html5-file-upload-with-progress/ ActionResult仍然是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 ); } }