我用ajax调用NameController\Action
在此操作中,我返回ActionResult
- View(model)
有什么办法可以将客户端重定向到返回的视图吗?
现在我只在fiddeler中看到这个视图(作为返回的内容)
答案 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);
}
}