JsonResult返回数据,但是当类型为GET

时间:2015-06-16 14:36:04

标签: javascript jquery ajax asp.net-mvc

我有一个调用JsonResult方法的javascript函数,而JsonResult方法正在将数据发送回函数,但是当我在javascript函数中使用警报测试它时,它返回Undefined。我已经在SO上检查了几个类似的答案,比如JsonResult returns null for Jquery .ajaxJquery ajax not returning data [duplicate],但他们正在处理POST而不是GET,我可以得到一些关于我做错了什么的指导或指导我去哪里这可以搞清楚吗? 最终结果是我需要从JsonResult方法获取所有返回的数据,然后将其填充到文本字段中。

我的JsonResult方法是..

public JsonResult myResult(string id)
    {
        dal = new AWDAL();
        List<CustomerToAdd> cust = dal.GetCustomerByID(id);
        return Json(cust, JsonRequestBehavior.AllowGet);
    }

我的JavaScript就是这个..

function DataToGet(whatever) {
    alert(whatever.customerName);
}

function GetCustomerByCustomerID() {
    //var id = selectCustomerID;
    var result = "";
    $.ajax({
        type: "GET",
        url: "@Url.Action("myResult", new { id = "1234-5678-9012" })",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            return DataToGet(data);
        }
    });
}

我找到了这样做我想要的方式但是对于WebAPI2,我没有使用WebAPI2,但它看起来更好,我甚至不确定我是否可以用它来做我想要的。

function formatItem(item) {
  return item.Name + ': $' + item.Price;
}

function find() {
  var id = $('#prodId').val();
  $.getJSON(uri + '/' + id)
      .done(function (data) {
        $('#product').text(formatItem(data));
      })
      .fail(function (jqXHR, textStatus, err) {
        $('#product').text('Error: ' + err);
      });
}

修改 响应标题 Response Header

回应机构

Response Body

1 个答案:

答案 0 :(得分:0)

有效负载是一个数组。要获得有效负载中的单个项目,您需要像data[0]和每个字段data[0].customerName那样获得它。