2013-06-13 4 views
0

Я использую DropzoneJS с MVC. Файл загружается отлично, но действие не отображает другого представления, и не будет отображаться другое представление после перенаправления на другое действие. Просто остается на том же взгляде, из которого он был вызван.Asp.net MVC + dropzoneJS загрузка файла

Действие:

[HttpPost] 
    public ActionResult FileUpload(HttpPostedFileBase file) 
    { 
     if(file != null) 
     { 
      string ext = Path.GetExtension(file.FileName); 

      if (file.ContentLength > 0 && ext == ".txt") 
      { 
       var fileName = Path.GetFileName(file.FileName); 

       if (fileName != null) 
       { 
        var path = Path.Combine(Server.MapPath("~/uploads"), fileName); 
        file.SaveAs(path); 
       } 
      } 
     } 

     return View("Report"); 

     // This will redirect to action but will not display another view either: 
     // return RedirectToAction("Report"); 
    } 

Вид вызывается из:

<div id="dropzone"> 
    <form action="/Dashboard/FileUpload" class="dropzone clickable" id="demo-upload" method="post" enctype="multipart/form-data"> 
    </form> 
</div> 

ответ

2

вам нужно указать браузеру, чтобы сделать редирект, если вы используете Dropzone для загрузки файлов asyncronsly. При вызове async на ваш MVC-контроллер MVC не может сообщить браузеру об изменении страницы. Вы можете сделать переадресацию в javascript после того, как dropzone выложили файлы с полным событием:

myDropzone.on("complete", function(file) { 
    window.location = "./Dashboard/Report/"; 
}); 
Смежные вопросы