jquery – 重定向成功并显示失败错误

前端之家收集整理的这篇文章主要介绍了jquery – 重定向成功并显示失败错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经实现了一个控制器来创建新的用户.当它成功创建用户时,它将重定向到Index().

我想要的是一切都可以重定向,但保持在当前页面,看到错误,当某些失败.

我正在使用jQuery ajax与MVC.

我的控制器如下所示:

  1. [Authorize]
  2. public ActionResult CreateUser(string username)
  3. {
  4. try
  5. {
  6. //here the logic to create the user
  7. }
  8. catch (Exception ex)
  9. {
  10. string error = string.Format("Error creating user: {0}",ex.Message);
  11. Response.StatusCode = 500;
  12. Response.Write(error);
  13. }
  14. return RedirectToAction("Index");
  15. }

表单submit是用jQuery截取的,然后用ajax进行调用

  1. $("#new-user-form").submit(function() {
  2. var form = $(this);
  3. $.ajax({
  4. type: "GET",url: form.attr('action'),data: form.serialize(),success: function(data,textStatus,xhr) {
  5. //At this point I would like to redirect
  6. },error: function(xhr,errorThrown) {
  7. $(".error-summary").html(xhr.responseText);
  8. }
  9. });
  10.  
  11. //cancel the event
  12. return false;
  13. });

发生错误时工作正常,但我不知道如何实现成功案例.

我打开了其他选择.

解决方法

如果您要在成功操作中重定向,为什么要使用AJAX? AJAX的目的是仅刷新站点的一部分而不重新加载整个页面.如果在成功的行动中,您将要重定向,完全失去了从AJAX获得的所有目的和好处.但是因为你问这个可以做什么:
  1. [Authorize]
  2. public ActionResult CreateUser(string username)
  3. {
  4. ...
  5. if (Request.IsAjaxRequest())
  6. {
  7. return Json(new { redirectToUrl = Url.Action("Index") });
  8. }
  9. return RedirectToAction("Index");
  10. }

接着:

  1. success: function(data,xhr) {
  2. window.location.href = data.redirectToUrl;
  3. },

猜你在找的jQuery相关文章