asp.net-mvc – 如何从ASP.NET MVC中的JSONResult方法重定向到控制器操作?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何从ASP.NET MVC中的JSONResult方法重定向到控制器操作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在基于他的UserId作为JsonResult获取用户的记录…
  1. public JsonResult GetClients(int currentPage,int pageSize)
  2. {
  3. if (Session["UserId"] != "")
  4. {
  5. var clients = clirep.FindAllClients().AsQueryable();
  6. var count = clients.Count();
  7. var results = new PagedList<ClientBO>(clients,currentPage - 1,pageSize);
  8. var genericResult = new { Count = count,Results = results };
  9. return Json(genericResult);
  10. }
  11. else
  12. {
  13. //return RedirectToAction("Index","Home");
  14. }
  15. }

如何重定向到一个控制器动作从jsonResult方法在asp.net mvc?任何建议…

编辑:
这似乎不起作用

  1. if (Session["UserId"] != "")
  2. {
  3. var clients = clirep.FindAllClients().AsQueryable();
  4. var count = clients.Count();
  5. var results = new PagedList<ClientBO>(clients,pageSize);
  6. var genericResult = new { Count = count,Results = results,isRedirect=false};
  7. return Json(genericResult);
  8. }
  9. else
  10. {
  11. return Json({redirectUrl = Url.Action("Index","Home"),isRedirect = true });
  12. }

解决方法

这将取决于您如何调用此控制器操作。当你使用JSON时,假设你在AJAX中调用它。如果是这种情况,则无法从控制器操作重定向。您将需要在AJAX脚本的成功回调中执行此操作。实现它的一个方法如下:
  1. return Json(new
  2. {
  3. redirectUrl = Url.Action("Index",isRedirect = true
  4. });

而在成功回调中:

  1. success: function(json) {
  2. if (json.isRedirect) {
  3. window.location.href = json.redirectUrl;
  4. }
  5. }

备注:确保在JSON中包含isRedirect = false,以防您不想重定向,这是控制器操作中的第一种情况。

猜你在找的asp.Net相关文章