Asp.net-Mvc
如何從 ASP.NET MVC 中的 JSONResult 方法重定向到控制器操作?
我正在根據使用者
UserId的 JsonResult 獲取使用者的記錄…public JsonResult GetClients(int currentPage, int pageSize) { if (Session["UserId"] != "") { var clients = clirep.FindAllClients().AsQueryable(); var count = clients.Count(); var results = new PagedList<ClientBO>(clients, currentPage - 1, pageSize); var genericResult = new { Count = count, Results = results }; return Json(genericResult); } else { //return RedirectToAction("Index","Home"); } }如何從 asp.net mvc 中的 JsonResult 方法重定向到控制器操作?任何建議…
編輯: 這似乎不起作用……
if (Session["UserId"] != "") { var clients = clirep.FindAllClients().AsQueryable(); var count = clients.Count(); var results = new PagedList<ClientBO>(clients, currentPage - 1, pageSize); var genericResult = new { Count = count, Results = results ,isRedirect=false}; return Json(genericResult); } else { return Json({redirectUrl = Url.Action("Index", "Home"), isRedirect = true }); }
這將取決於您如何呼叫此控制器操作。當您使用 JSON 時,我想您是在 AJAX 中呼叫它。如果是這種情況,您無法從控制器操作重定向。您需要在
successAJAX 腳本的回調中執行此操作。實現它的一種方法如下:return Json(new { redirectUrl = Url.Action("Index", "Home"), isRedirect = true });在成功回調中:
success: function(json) { if (json.isRedirect) { window.location.href = json.redirectUrl; } }備註:確保包含
isRedirect = false在 JSON 中,以防您不想重定向,這是控制器操作中的第一種情況。