我用ajax调用NameController\Action
在这个动作中,我返回ActionResult
- 一个View(model)
有什么方法可以将客户端重定向到返回的视图?
现在我只在提琴手中看到这个视图(作为返回的内容)
我用ajax调用NameController\Action
在这个动作中,我返回ActionResult
- 一个View(model)
有什么方法可以将客户端重定向到返回的视图?
现在我只在提琴手中看到这个视图(作为返回的内容)
有什么方法可以将客户端重定向到返回的视图?
当然,但为什么在这种情况下使用 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);
}
}