2015-04-16 4 views
1

EDITЗагрузка изображений в asp.net

У меня есть результат действия загрузки, это может занять несколько минут для возвращения новую страницу. Я хочу установить в div или что-то загрузочное изображение.

Я не знаю, почему, но я чувствую, что это неправильный путь. Каков правильный способ показать экран загрузки/добавить загрузочный образ в ASP.NET.

У меня есть это:

[HttpPost] 
    public ActionResult UploadTarget(UploadViewModel model) 
     { 
    //code that takes minutes 
    return RedirectToAction("UploadSuccess", "Upload"); 
    } 

Как я могу вызвать функцию, прежде чем он начнет работать функцию uploadtarget.

<script> 
    function wait() { 
     document.getElementById("wait").innerHTML = '<img src="/Images/wait.png" alt="Smiley face" height="42" width="42"> '; 
    } 
</script> 

<div class="col-md-6"> 
    @using (Html.BeginForm("UploadActual", "Upload", FormMethod.Post, new { enctype = "multipart/form-data" })) { 
      @Html.AntiForgeryToken() 
      @Html.EditorFor(model => model.Remark) 
      @Html.ValidationMessageFor(model => model.Remark) 
      <input onclick="wait()"type="submit" value="Create" class="btn btn- primary btn-lg"/> 
} 
</div> 

<div id="wait"class="col-md-6"></div> 

Он запускает мою функцию javascript после RedirectToaction. Так что он больше ничего не делает. Как я могу это исправить? с C# или javascript? Или есть другое хорошее решение?

+0

Вам необходимо предоставить более подробную информацию. какие ошибки? –

+0

Вы выполняете стандартную загрузку сообщения или выгружаете асинхронные сообщения? Есть ли даже ошибки или вам нужен индикатор, чтобы показывать его? И что вы подразумеваете под «это плохо работает?» – Daved

+0

с этим javascript, я думаю, что он запускает uploadTarget frist после того, как он запускает showWait(). поэтому я думаю о следующем возможном решении с RedirectToactions с uploadviewmodel в качестве параметра – user3432681

ответ

0

Вы можете отобразить изображение сразу, а затем отправить форму в таймаут, чтобы отобразить время отображения изображения. Что-то вроде этого:

function wait() { 
    document.getElementById("wait").innerHTML = '<img src="/Images/wait.png" alt="Smiley face" height="42" width="42"> '; 
    setTimeout(function(){document.getElementById("myForm").submit()},10); 
} 

<input onclick="wait()"type="button" value="Create" class="btn btn- primary btn-lg"/> 

Где «myForm» - это идентификатор вашей формы.

+1

Я не знаю почему, но он работает: D – user3432681

Смежные вопросы