延迟ajax OnBegin,直到DOM-MVC5淡出

延迟ajax OnBegin,直到DOM-MVC5淡出,ajax,asp.net-mvc,Ajax,Asp.net Mvc,当用户单击链接并淡入新获取的部分视图时,我试图从部分视图淡出包含html的div。我遇到的问题是,有时我的视图在原始部分视图淡出完成之前被获取,因此我最终看到部分视图切换为淡出、淡出,然后再次淡入。有没有办法延迟ajax请求直到淡出完成 以下是我试图实现的操作顺序。 用户单击链接>局部视图A淡出>通过ajax获取新的局部视图>局部视图B淡入 这就是时不时发生的事情 用户单击链接>部分视图A开始淡出,但部分视图B在淡出完成之前进入>部分视图B淡出>部分视图B再次淡出 @Ajax.ActionLin

当用户单击链接并淡入新获取的部分视图时,我试图从部分视图淡出包含html的div。我遇到的问题是,有时我的视图在原始部分视图淡出完成之前被获取,因此我最终看到部分视图切换为淡出、淡出,然后再次淡入。有没有办法延迟ajax请求直到淡出完成

以下是我试图实现的操作顺序。
用户单击链接>局部视图A淡出>通过ajax获取新的局部视图>局部视图B淡入

这就是时不时发生的事情

用户单击链接>部分视图A开始淡出,但部分视图B在淡出完成之前进入>部分视图B淡出>部分视图B再次淡出

@Ajax.ActionLink("Me", "ManageUserAccount", null, new AjaxOptions
                                   {
                                       HttpMethod = "GET",
                                       UpdateTargetId = "ajax-update",
                                       InsertionMode = InsertionMode.Replace,
                                       OnBegin = "ajaxBegin",
                                       OnSuccess = "ajaxSuccess"
                                   }, new { @class = "active" })    


 @Ajax.ActionLink("Alerts", "ManageAlerts", null, new AjaxOptions
                               {
                                   HttpMethod = "GET",
                                   UpdateTargetId = "ajax-update",
                                   InsertionMode = InsertionMode.Replace,
                                   OnBegin = "ajaxBegin",
                                   OnSuccess = "ajaxSuccess"
                               }, new { @class = "active" })



<div id="ajax-update">
            @Html.Action("ManageUserAccount")
        </div>  


<script type="text/javascript">
    function ajaxSuccess() {
        $('#ajax-update').fadeIn();
        //sometimes the new partial view is returned before this even finishes its job
    }
    function ajaxBegin() {
        $('#ajax-update').fadeOut();
    }
@Ajax.ActionLink(“我”、“ManageUserAccount”、空、新AjaxOptions
{
HttpMethod=“GET”,
UpdateTargetId=“ajax更新”,
InsertionMode=InsertionMode.Replace,
OnBegin=“ajaxBegin”,
OnSuccess=“ajaxSuccess”
},新的{@class=“active”})
@ActionLink(“警报”,“管理警报”,空,新AjaxOptions
{
HttpMethod=“GET”,
UpdateTargetId=“ajax更新”,
InsertionMode=InsertionMode.Replace,
OnBegin=“ajaxBegin”,
OnSuccess=“ajaxSuccess”
},新的{@class=“active”})
@Html.Action(“ManageUserAccount”)
函数ajaxSuccess(){
$('#ajax更新').fadeIn();
//有时,新的局部视图甚至在完成其工作之前返回
}
函数ajaxBegin(){
$(“#ajax更新”).fadeOut();
}

我做了一个非常类似的函数。。。但我使用的是get、done和effect。而且有效!我用做一个复杂的网站没有回发,改变部分是在菜单中模拟改变页面

$(".menu-button").click(function (e) {
    var id = e.target.id;
    var urlID = document.URL.split('#')[1];
    if (id != urlID) {
        location.hash = id;
        changepartial(id);
    }
 });

    function changepartial(id)
    {
         var path = "../home/"+id;
         getOut();
         $.get(path).done(function (result) { 
  //done is for wait get result after make the next step.

            $("#Contenant").html(result);
            getIn();
         });
    }

    function getOut() {
        $("#Contenant").effect('drop', { direction: 'left' }, 100);
    }

    function getIn() {
        $("#Contenant").effect('slide', { direction: 'right' }, 1000);
    }

帕布洛特。这看起来不像它的MVC。如果我不够清楚,我很抱歉。让我更新我的标题。是的,我正在使用mvc5和jquery,这段代码都在javascript路径中,是部分视图的地址,例如:“../shared/_news”我忘了在controller中我使用了这个结构[HttpGet]public ActionResult Fan(){ViewBag.Message=“你的应用程序描述页。”返回PartialView(“_Fan”)}好的,我现在明白了。那么changePartial是从哪里调用的呢?我希望尝试获得一个与Ajax助手一起工作的解决方案。您是否将它连接到某种按钮上,取消请求,淡出,然后使用jquery重新发送请求?