Asp.net在ajax调用后返回一个视图

本文关键字:一个 视图 返回 net ajax 调用 Asp | 更新日期: 2023-09-27 17:54:45

我用ajax调用NameController'Action

在此操作中,我返回ActionResult - a View(model)

是否有办法将客户端重定向到返回的视图?

现在我只在fiddeler中看到这个视图(作为返回的内容)

Asp.net在ajax调用后返回一个视图

是否有办法将客户端重定向到返回的视图?

当然,但是在这种情况下为什么要使用AJAX呢?AJAX的全部意义在于保持在同一个页面上,避免重新加载整个HTML。

但是如果你想,你可以做到。例如,您可以让控制器动作有条件地返回一个JSON结果,其中包含您想要重定向到的目标url。然后在AJAX调用的成功回调中,使用window.location.href在客户端上执行重定向。

让我们例证:

[HttpPost]
public ActionResult MyAction()
{
    if (SomeCondition)
    {
        return PartialView(model);
    }
    return Json(new { redirectTo = Url.Action("TargetAction", "TargetController") });
}

然后在AJAX成功回调中:

success: function(result) {
    if (result.redirectTo) {
        // the server returned a JSON result => let's redirect to the target url
        window.location.href = result.redirectTo;
    } else {
        // The server returned a partial view => let's update some portion of the DOM
        $('#result').html(result);
    }
}