2016-01-25 3 views
0

Я пытаюсь выполнить загрузку файла ASP.NET через ajax. У меня есть этот АЯКС вызов на месте:ASP.NET Загрузить файл через ajax возвращает ошибку everytime

$.ajax({ 
              type: "POST", 
              url: '/Home/Upload', 
              data: formData, 
              dataType: 'json', 
              contentType: false, 
              processData: false, 
              success: function (response) { 
               alert('success!!'); 
               $("#" + id).attr('disabled', false); 
              }, 
              error: function (error) { 
               alert("errror"); 
              } 
             }); 

и это мой .NET код:

[HttpPost] 
     public void Upload() 
     { 
      for (int i = 0; i < Request.Files.Count; i++) 
      { 
       var file = Request.Files[i]; 

       string path = Path.Combine(Server.MapPath("~/UploadedFiles"), 
               Path.GetFileName(file.FileName)); 

       file.SaveAs(path); 
      } 

     } 

Когда я Гото папку, я могу видеть его была загружена, но по какой-то причине Аякса возвращается предупреждение об ошибке, пожалуйста, помогите.

+0

Вам нужно определить [WebMethod] атрибут вместе с [HttpPost]. – DinoMyte

ответ

1

Потому что вам нужно что-то вернуть. С возвратом он всегда дает ошибку.

[HttpPost] 

    public ActionResult AsyncUpload() 
    { 

     for (int i = 0; i < Request.Files.Count; i++) 
     { 
      var file = Request.Files[i]; 

      string path = Path.Combine(Server.MapPath("~/UploadedFiles"), 
              Path.GetFileName(file.FileName)); 

      file.SaveAs(path); 
     } 

     return Json(new { success = true }, 
      "text/plain"); 
    } 
+0

yay boy! Это сработало, спасибо! – user979331

+0

Тогда я ожидаю правый клик :) –

0

Вы должны вернуть логическое значение от сервера к клиенту, чтобы понять, закончен ли процесс правильно или нет.

C#:

[HttpPost] 
public void Upload() { 
    try { 
     for (int i = 0; i < Request.Files.Count; i++) { 
      // your stuff 
     } 
     return true; 
    } catch (Exception) { 
     return false; 
    } 
} 

** JS: **

$.ajax({ 
    // your options 
    success: function (response) { 
     if (response) { 
      alert('success!!'); 
      $("#" + id).attr('disabled', false); 
     } else { 
      alert("an errror occurred"); 
     } 
    }, 
    error: function (error) { 
     alert("error"); 
    } 
}); 
Смежные вопросы