Return 错误并在 ajax 中查看

Return Error and view in ajax

大家好,我想知道有没有可能。使用 ajax 发送错误消息,如果发生其他发送视图。你可以看到我的代码。请帮帮我,我该怎么做。需要一些建议

这是我的例子

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 () {
                }
            });
        }

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

Return 错误代码为 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");
                   }
                 }
            });
        }