0

我用ajax调用NameController\Action

在这个动作中,我返回ActionResult- 一个View(model)

有什么方法可以将客户端重定向到返回的视图?

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

4

1 回答 1

0

有什么方法可以将客户端重定向到返回的视图?

当然,但为什么在这种情况下使用 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);
    }
}
于 2013-01-21T14:16:29.227 回答