【问题标题】:How to show custom error message on forced error inside a JsonResult如何在 JsonResult 中显示有关强制错误的自定义错误消息
【发布时间】:2019-04-09 13:24:47
【问题描述】:

我有一个 JsonResult,我在其中进行了一些验证并将响应状态代码设置为 400,并返回一个带有名为 errorMessage 的自定义变量的 Json。

在视图中我有正常的 JQuery AJAX 代码,在错误部分我想访问变量 errorMessage 中的值。

如何在 JQuery AJAX 代码的错误部分中声明 function()。

// JsonResult action method
public JsonResult QuitarMiembro(string Id)
{
    if (Id == null)
    {
        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return Json(new { errorMessage = "Null Id" });
    }
}
//JQuery AJAX
function MyFun(Id) {
    console.log(Id);

    $.ajax({
        type: "POST",
        url: '@Url.Action("QuitarMiembro", "MiembrosJD")',
        dataType: 'json',
        data: { IdUsuario: Id },
        success: function (data) {
            fnMostrarMensajeExito(data.message);
            tablaMiembrosJD.ajax.reload();
        },
        error: function (data) {
            console.log(data.errorMessage);
        }
     });
}

【问题讨论】:

  • 你有错误功能,尝试consoling data 属性,它应该有请求的主体
  • 当您的代码抛出异常时执行error: function(jqXHR, textStatus, errorThrown) 函数,但您返回的是无法进入错误函数的自定义json 对象。但是您可以通过像这样的状态来处理异常,例如 `if (jqXHR.status == 404), if (jqXHR.status == 500)`。

标签: c# jquery json ajax asp.net-mvc


【解决方案1】:

尝试此代码以获取错误消息

function MyFun(Id) {
console.log(Id);
$.ajax({
    type: "POST",
    url: '@Url.Action("QuitarMiembro", "MiembrosJD")',
    dataType: 'json',
    data: { IdUsuario: Id },
    success: function (data) {
        fnMostrarMensajeExito(data.message);
        tablaMiembrosJD.ajax.reload();
    },
   error: function (data) {
        alert("Error:" + data.errorMessage);`
    }
 });

}

【讨论】:

  • 该代码对客户端来说很好,但是警报显示“错误:未定义”,但在服务器端我将 response.statuscode 设置为错误请求后有这一行:return Json(new { errorMessage = "Id 为空" });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多