2015-06-01 5 views
1

Я относительно новичок в загрузке в MVC, поэтому у меня есть небольшое разъяснение. Я выполняю операцию загрузки ajax.перенаправление запроса на ту же страницу после загрузки в mvc

Операция загрузки работает абсолютно нормально, но после ее загрузки перенаправляется на новую страницу, которая является пустой страницей, и я не знаю, как остановить ее от ее выполнения. Я использовал EmptyResult, но все же происходит то же самое. Что это, что я пропал?

@using(Html.BeginForm()) 
{ 
<input type="file" id="fileInput" /> 
<button onclick="startUpload();">Upload</button> 
<br /> 
<progress id="progressBar" max="100" value="0" /> 
} 
<script> 



    function startUpload() { 
     var fileInput = document.getElementById("fileInput"); 

     if (fileInput.files.length == 0) { 
      alert("Please choose a file"); 
      return; 
     } 

     var progressBar = document.getElementById("progressBar"); 
     var xhr = new XMLHttpRequest(); 

     xhr.upload.onprogress = function (e) { 
      // alert("in progress"); 
      var percentComplete = (e.loaded/e.total) * 100; 
      progressBar.value = percentComplete; 
     }; 

     xhr.onload = function() { 

     }; 
     xhr.onerror = function() { 

      alert("Error! Upload failed. Can not connect to server."); 
     }; 
     xhr.onreadystatechange = function() { 

     }; 
     progressBar.value = 0; 
     xhr.open("POST", "/Home/Index", true); 
     xhr.setRequestHeader("Content-Type", 'application/json'); 
     xhr.send(fileInput.files[0]); 
    } 
</script> 


    [HttpPost] 
    public EmptyResult Index(FormCollection frm) 
    { 
     // Create JSON Response 
     var jsonData = new 
     { 
      status = "success", 
      message = "message" 
     }; 
     return null; 
       } 
+0

Добавить сверхновые типа «кнопка» = к элементу ''

ответ

0

Вы можете передать значение события по вызову OnClick функции вашей кнопки для того, чтобы манипулировать обработки позже, как это событие:

<button onclick="startUpload(event);">Upload</button> 

Затем в JavaScript, вы можете попросить его игнорировать обработки событие по умолчанию (отправить форму в этом случае):

function startUpload(event) { 
    //do all those stuff 

    //event.preventDefault() should handle most of the browsers 
    //but for better compatibility, it's 3 lines here 
    if (event.preventDefault) event.preventDefault(); 
    event.returnValue = false; 
    return false; 
}