Что ж, если вам нужно показать загрузчик во время отправки почтовой формы, вы можете использовать функции javascript для его отображения, например
@using (Html.BeginForm("AddAsync", "Home", FormMethod.Post, new { onsubmit = "showLoader(this);" }))
{
...
}
плюс JS
<script>
var showLoader = function(form){
$("<div />").css({
'position' : 'fixed',
'left' : 0,
'right' : 0,
'bottom' : 0,
'top' : 0,
'background' : '#0020ff36',
'z-index' : '99',
'text-align' : 'center'
}).appendTo($("body"))
.append(
$("<img />").attr("src", "https://mir-s3-cdn-cf.behance.net/project_modules/disp/35771931234507.564a1d2403b3a.gif")
);
}
</script>
или jqueryсобытие, например
<script>
$("form").submit(function(){
//show loader
});
</script>
пример этого кода https://dotnetfiddle.net/gfEVSE
Но , что касается разъяснения вопроса в комментариях, невозможно показать страницу сведений спрогресс сохранения без Javascript или других дополнительных запросов.
Пример без ajax, но с дополнительными запросами каждые N секунд
[HttpPost]
public ActionResult AddAsync(SampleViewModel deviceRegistration)
{
Task.Run(()=>
{
//Saving to DB
});
return RedirectToAction("Details", id = deviceRegistration.id);
}
public ActionResult Details(int id)
{
var isObjectExistInDb = checkIfExistInDb(id);
if (!isObjectExistInDb){
return View("ShowLoader", id);
}
return View(object);
}
, где в ShowLoader.cshtml необходимо перезагрузить страницу каждые N секунд.
С ajax будет более понятный, красивый код.Пожалуйста, дайте мне знать, если вам нужен пример с ajax:)