1

我有这个角度控制器:

(function () {
    "use strict";
    angular.module('appContacts')
        .controller('organizationsController', function organizationsController(dataService, $stateParams) {

            var vm = this;
            vm.visible = false;
            var id = $stateParams.Id;
            activate();

            function activate() {
                dataService.GetOrganizationById(id).then(function (result) {
                    vm.organization = result.data;
            }, function () {
                vm.errorMessage = "Failed to load" + Error;
            });
        }
    });
})();

这是我的数据服务文件:

(function () {

    angular.module('appContacts')
        .factory('dataService', ['$http', dataService]);

    function dataService($http) {
        return {
            getAllOrganizations: getAllOrganizations,
            GetOrganizationById: GetOrganizationById,
        };

        function getAllOrganizations() {
            return $http({
                method: 'GET',
                url: 'api/organizations'
            });
        }

        function GetOrganizationById(id) {
            return $http({
                method: 'GET',
                url: '/api/organizations/{id}'
            });
        }
})();

此 dataService.js 调用存储库中的 GetOrganizationById 方法,如下所示:

...
    public Organization GetOrganizationById(Guid Id)
    {
        return _context.Organizations
            .Include(o => o.Contacts)
            .ThenInclude(c => c.Phone.main == true)
            .Where(o => o.Id == Id)
            .FirstOrDefault();
    }
...

存储库成功获取信息,发送回 dataService.js 并到达 organizationsController.js 中的这一行。我可以在 Chrome 调试器中看到:

dataService.GetOrganizationById(id).then(function (result) 

但是在下一行,数据丢失,系统返回 204 错误代码:无数据。

vm.organization = result.data; 

知道为什么控制器不接受在变量“结果”中发送的数据吗?

我在 Visual Studio 2015 EF 和 C# 后端工作。但问题只是在前端,因为我得到了信息,而且我也看到了 Postman

4

0 回答 0