假设我将表单发布到MVC控制器并执行了以下操作

function ajaxFunction() {
    $.ajax({
        type: "POST",
        url: "ControllerName/FirstMethod",
        data: $('#form').serialize(),
        success: function () {
            //I'm wondering if this gets run after the FirstMethod or SecondMethod
        }
    });
)


控制器操作会执行某些操作,然后将其重定向到下一个这样的方法

[HttpPost]
public ActionResult FirstMethod()
{
    //Some code run here

    //Send to the next method
    return RedirectToAction("SecondMethod");
}

public void SecondMethod()
{
    //Something else done here
}


因此,整个过程是发布到FirstMethod,然后运行SecondMethod。我的问题是-Ajax success()方法何时运行?是在FirstMethod还是SecondMethod之后?

最佳答案

RedirectToAction返回HTTP状态代码302,这使AJAX对重定向URL(SecondMethod)进行GET。

仅当返回2XX HTTP代码时,才会调用jQuery AJAX成功。如果SecondMethod返回带有2XX状态代码的内容(例如View),则它将为。否则,它将永远不会被调用。

10-04 17:29