Witam serdecznie.
Mój problem polega na wyświetlaniu gifa "Proszę czekać" podczas wykonywania długo trwającej operacji (umieszczenie 10 mln kodów z pliku txt w bazie danych - czas około 1 min).
Controller:
public ActionResult InsertCodesToDB(string name)
{
//odczyt z pliku kodów, parsowanie, import kodów do bazy danych
return View("UploadFile", CreateViewModel(fl.FilesInUploadDir(), 0, 0));
}
View:
<body>
@if(Model.webStatus == 0)
{
using (Html.BeginForm("UploadFile", "ActualCodes", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
---
<input type="button" class="btn btn-success" id="sendCodesToDB" value="Umieść kody w bazie" onclick="location.href='@Url.Action("InsertCodesToDB", "ActualCodes", new {name = item.Name})'" />
....
<div id="ttt">
<p class="text-info" style="font-size: large; text-align: center" id="lblSelectedProductName">TEST22</p>
</div>
<div id="loading">
<img src="~/Content/loading.gif">
</div>
}
}
@if (Model.webStatus == 1)
{
<div id="loading">
<img src="~/Content/loading.gif">
</div>
}
<script>
$(document).ready(function () {
$('#loading').hide();
$('#ttt').hide();
});
$("#sendCodesToDB").click(function () {
$('#loading').show;
$('#lblSelectedProductName').text('Trwa umieszczanie kodów w bazie danych . Proszę czekać ...');
$('#ttt').show();
});
</script>
</body>
Oczywiście pominąłem sporą część z Widoku.
W momencie użycia przycisku sendCodesToDB wszystkie divy zostają ukryte prawidłowo jednak gif znajdujący się w "loading" przestaje działać (nie kręci się)
Próbowałem również użyć następującej opcji w Controlerze:
public ActionResult InsertCodesToDB(string name)
{
Task.Run(() =>
{
//odczyt z pliku kodów, parsowanie, import kodów do bazy danych
return View("UploadFile", CreateViewModel(fl.FilesInUploadDir(), 0, 0));
});
return View("UploadFile", CreateViewModel(fl.FilesInUploadDir(), 1, 0));
}
jednak return View ... znajdujący się w Tasku już nie wywołuje strony.
Przepraszam jeżeli mój problem jest trywialny lub źle opisany. Jak widać to mój pierwszy post. Jestem również początkującym "pisarzem".
Wszelkie uwagi, krytykę oraz porady przyjmuję z wielką wdzięcznością.