jquery - 返回错误并在ajax中查看

标签 jquery ajax asp.net-mvc controller

大家好,我想知道有什么可能。使用 ajax 发送错误消息(如果发生),否则发送 View 。你可以看到我的代码。请帮助我该怎么办。需要一些建议

这是我的例子

public ActionResult Test()
{
  string ErrorText = string.Empty;
  if(true)
    return View("PagedList");
  }
  else
  {
    return Json(new { errorMessage = ErrorText});
  }
}

Ajax :-

function Load(page) {

            $.ajax({
                type: "POST",
                url: page,
                xhrFields: {
                    withCredentials: true
                },
                success: function (data) {

                        $('#ReportLoad').empty();
                        $('#ReportLoad').append($.parseHTML(data));

                },
                 error: function (xhr, textStatus, exceptionThrown) {
                    $('#ReportErrors').empty();
                    $('#ReportErrors').html(JSON.parse(xhr.responseText));
                    $('#ReportErrors').show();
                },
                complete: function () {
                }
            });
        }

我不知道我的做法是否正确,任何人都可以建议实现此目标的最佳方法是什么。

最佳答案

HttpStatusCodeResult 形式返回错误代码,如果您只是发送回复,则 Ajax 无法知道这是一个错误,除非您检查响应中的特定文本。

 public ActionResult Test()
 {
      string ErrorText = string.Empty;
      if(true)
        return View("PagedList");
      }
      else
      {
        return new HttpStatusCodeResult(500, ErrorText);
      }
 }

然后使用 Ajax 检测这一点:

function Load(page) {
            $.ajax({
                type: "POST",
                url: page,
                xhrFields: {
                    withCredentials: true
                },
                success: function (data) {

                        $('#ReportLoad').empty();
                        $('#ReportLoad').append($.parseHTML(data));

                },
                 error: function (xhr, textStatus, exceptionThrown) {
                    $('#ReportErrors').empty();
                    $('#ReportErrors').html(JSON.parse(xhr.responseText));
                    $('#ReportErrors').show();
                },
                complete: function () {
                },
                   statusCode: {
                   500: function(response)
                   {
                       alert("internal error");
                   }
                 }
            });
        }

关于jquery - 返回错误并在ajax中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30452701/

相关文章:

jquery mobile - 如何预填充日期时间本地类型的文本输入

javascript - css 打印预览页面被剪切

javascript - 关于 IE 在滚动时通过纯 JavaScript 添加类到 div 的问题

javascript - 无法访问 json 对象属性并且值在 Rails View 中显示为未定义

javascript - 跳过从数据库到 html 的 AJAX 值

asp.net-mvc - ASP.NET MVC 3 变化总结

asp.net-mvc - 如何在 EditorTemplate 中获取完全限定的成员名称?

jquery - 如何从 ASP.NET AJAX 响应显示灯箱对话框

javascript - 使用 AJAX 根据选择填写表单字段

c# - 图像处理架构设计建议