【问题标题】:How to access Json Data correctly when returned from MVC controller?从 MVC 控制器返回时如何正确访问 Json 数据?
【发布时间】:2025-12-14 22:10:02
【问题描述】:

我知道这个话题经常被谈论,但我找不到专门针对我所追求的答案。许多指向访问一个返回对象。我需要同时访问这两个

当返回到 Ajax 调用时,我似乎无法弄清楚如何访问 Json 对象的参数。我已经安慰过了,可以看到那里有回应。数据部分中的两项是正确的。我只是不知道如何正确访问它们。

响应来自控制器。与此返回。

 else
    {           
        string sl = subLineData[0];
        string d = "fail";
        var result = Json(new { param1 = d, param2 = sl });
        return Json(result, JsonRequestBehavior.AllowGet);

    }

这是 Ajax 调用。

   $.ajax({
    url: '/Trucking/SubLineValuesInsert',
    type: 'POST',
    contentType: 'application/json',
    data: data,
   success: function (response) {
       console.log(response); 

       if (data.param1 === "fail") {
           alert(data.param2 + " already exists");
       }
       // console.log(response);
    },
    error: function () {
        //alert('Error');
        console.log('Error');
    }
});     

data.param1 是我试图以这种方式访问​​数据。我当然对此感到不确定。

这是 console.log(response) 显示它确实返回的图像,我只需要访问它,这样我就可以在之后使用一些条件逻辑。这是我追求的 param1 和 param2。我们总是感谢您的帮助。

【问题讨论】:

    标签: jquery json ajax model-view-controller


    【解决方案1】:

    在这里找到我的答案Send to and get value from a MVC3 controller by AJAX。特别是返回 Json 以及我如何在 Ajax 调用中访问它。

    这是返回的 Json

           else
             {
                string sl = subLineData[0];
                return Json(new {Success = false, Result = sl }, JsonRequestBehavior.AllowGet);
             }
    

    现在是 Ajax 调用:

      $.ajax({
        url: '/Trucking/SubLineValuesInsert',
        type: 'POST',
        contentType: 'application/json',
        data: data,
       success: function (result) {
           if (!result.Success) {
               alert(result.Result + " already exists");
           }
        },
        error: function () {
            //alert('Error');
            console.log('Error');
        }
    });    
    

    【讨论】:

      【解决方案2】:

      data 包含您在请求中发送 的对象。要访问您在响应中返回的对象的Data 属性,您需要使用response.Data

      success: function (response) {
        if (response.Data.param1 === "fail") {
          alert(response.Data.param2 + " already exists");
        }
      },
      

      【讨论】:

      • Mcrossan。谢谢..你发布你的权利就像我发布我的一样。我想出了一个解决方案,但现在我有两个!刚试过你的反应,效果很好。谢谢。