Angular promise返回“未定义”值.NET MVC

时间:2016-05-13 11:27:51

标签: javascript angularjs scope promise

在下面的代码示例中,我发送了一个“请求”,我试图得到一个响应,但返回“未定义”值。 到目前为止,这是我的代码

$scope.SameNameFunction = function() {
            var payload = { itemname: $scope.EventDetails.Name};
            portalRepository.namecall(payload).then(function (payload) {
                console.log(payload.valuesreturned);
                alert("Detected: " + payload.valuesreturned + " events having the same name");
            });
        };

来自http.post的代码

            namecall: function (payload) {
                return $http.post("/Api/PortalData/NameNumberResult", payload);
            },

来自.cs控制器的代码:

public ActionResult NameNumberResult(ItemEventNameDTO payload)
{
    var valuetosend = payload.itemname;
    var acf = new AcFunctions();
    var newstorevalue = SqlHelper.ExecuteDataset(acf.AcConn(), "sp_selectbyname", valuetosend);
    payload.valuesreturned = newstorevalue.Tables[0].Rows.Count;
    return payload.GetSuccess();
}

设置断点我从.cs和.js文件中获取存储过程的相应值。但是在尝试在屏幕上打印消息时,不显示值,而是显示“检测到具有相同名称的未定义事件”。 欢迎任何帮助!

1 个答案:

答案 0 :(得分:2)

根据您的代码,您将返回promise

namecall: function (payload) { 
    return $http.post(url, payload); 
}

您需要使用$http.post()

的回调方法
 portalRepository.namecall(payload).then(function(data){
     alert("Detected: " + payload.valuesreturned + " events having the same name");
 });