角度承诺返回值"undefined" .NET MVC



在下面的代码示例中,我发送了一个"请求",并试图获得一个响应,但返回了"未定义"的值。这是我迄今为止的代码

$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文件中。但当试图在屏幕上打印消息时,值不会出现,而是显示"检测到具有相同名称的未定义事件"。欢迎任何帮助!

根据您的代码,您将返回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");
 });

最新更新