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

时间:2013-01-21 14:03:28

标签: c# ajax asp.net-mvc

我用ajax调用NameController\Action

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

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

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

1 个答案:

答案 0 :(得分:0)

  

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

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

但如果你想要,你可以实现这一目标。例如,您可以让控制器操作有条件地返回包含您要重定向到的目标URL的JSON结果。然后在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);
    }
}