所以这是我的控制器操作,它从服务获得双倍(平均值)并将其作为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);
});
有人能告诉我为什么会这样吗?
答案 0 :(得分:0)
AJAX 异步 - 你需要使用回调!将回调传递给getAvg
并将数据作为参数传递:
function getAvg(callback)
{
$.getJSON("/Product/getAvgRating", { "productId": productId }, function (data) {
callback(data);
});
}
然后致电!
getAvg(function(avg) {
alert(avg);
});