私はajaxで電話しますNameController\Action
このアクションでは、私は戻りますActionResult
-aView(model)
クライアントを返されたビューにリダイレクトする方法はありますか?
現在、このビューはフィデラーでのみ表示されます(返されたコンテンツとして)
私はajaxで電話しますNameController\Action
このアクションでは、私は戻りますActionResult
-aView(model)
クライアントを返されたビューにリダイレクトする方法はありますか?
現在、このビューはフィデラーでのみ表示されます(返されたコンテンツとして)
クライアントを返されたビューにリダイレクトする方法はありますか?
もちろんですが、なぜこの場合に 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);
}
}