JSON值返回未识别

时间:2014-04-26 18:42:44

标签: javascript jquery json

所以这是我的控制器操作,它从服务获得双倍(平均值)并将其作为JSON返回

控制器名称(产品)

[HttpGet]
public JsonResult getAvgRating(int productId)
{
    double average = new WCF_Ratings.WCF_RatingsClient().getAvgRating(productId);
    return Json(average, JsonRequestBehavior.AllowGet);
}

这是获取数据的jquery函数,数据在警报中正确显示

function getAvg() 
{
    $.getJSON("/Product/getAvgRating", { "productId": productId }, function (data) {
        alert(data);
        return data;
    });
}

当我尝试通过调用函数getAvg()从jquery函数外部读取数据时,我在警报窗口中收到了未识别的数据。

$("#testbutton").click(function () 
{
    var d = getAvg();
    alert(d);
});

有人能告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

AJAX 异步 - 你需要使用回调!将回调传递给getAvg并将数据作为参数传递:

function getAvg(callback) 
{
    $.getJSON("/Product/getAvgRating", { "productId": productId }, function (data) {

        callback(data);
    });
}

然后致电!

getAvg(function(avg) {
    alert(avg);
});