1
私は、長持ちするコントローラの動作中に表示される単純なスピナーをASP.NETコアで作成しようとしています。ASP.NetコアMVCブロックリダイレクトのdata-ajax-beginスクリプト
コードは期待通りに機能しますが、コントローラの動作でリダイレクトがブロックされているようです。 このシナリオでリダイレクトを行う方法はありますか?
マイIndex.cshtml
<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/jquery-ajax-unobtrusive/src/jquery.unobtrusive-ajax.js"></script>
<script type="text/javascript">
function onBegin() {
$("#divLoading").html('<image src="~/images/ajax-loader.gif" alt="Loading, please wait" />');
}
function onComplete() {
$("#divLoading").html("");
}
</script>
<form data-ajax="true" data-ajax-begin="onBegin" data-ajax-complete="onComplete" asp-action="LoadLongLasting" asp-controller="Home">
<input type="submit" value="Load Long lasting"/>
</form>
<div id="divLoading"></div>
コントローラのアクションの例:
public ActionResult LoadLongLasting()
{
bool result = GetLongLastingResult();
if(result)
{
return View();
}
return RedirectToAction("Error");
}
アヤックスの全体のポイントは、**同じ**ページに滞在することです。 Ajaxコールは決してリダイレクトされないので、あなたの 'return RedirectToAction(" Error ");は無意味です。 –
OK、実装されたスピナーをリクエストの開始時に表示し、Ajaxなしで最後に隠すのがベストプラクティスとなります。私はこれが非常に一般的なシナリオだと信じていますが、正直言って私はヒントはありません。 – Herman