Controller从angularjs服务帖子接收Null参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Controller从angularjs服务帖子接收Null参数相关的知识,希望对你有一定的参考价值。

我在使用angularjs向控制器发布数据时遇到问题。

调试时数据看起来很好,直到它到达我的控制器,然后传入的参数总是为空。

public class NewCompArgs {
            public string Name { get; set; }
            public string Description { get; set; }

        }

        //Tested with [HttpPost] here, and it didn't work
        // Tested using [FromBody]NewCompArgs args, and splitting 
        // out into Name and Decription strings with [FromBody]
        public ActionResult AddNewComponent(NewCompArgs args) 
        {
            Component NewComp = new Component
            {
                Name = args.Name,
                Description = args.Description
            };
            _context.Add(NewComp);
            _context.SaveChanges();
            return Json(NewComp);
        }

NewCompArgs args每次都为null。

这是我用来击中控制器的服务:

app.factory('Components', function ($http, $q) {
    var service = {};

    service.AddNewComponent = function (args) {
        var deferred = $q.defer();
        $http.post('/Components/AddNewComponent', { args: args }).then(function (response) {
            deferred.resolve(response.data);
        });
        return deferred.promise;
    };
    return service;
});

这是角度控制器功能:

$scope.newComponent = function () {
        Components.AddNewComponent($scope.compArgs).then(function (response) {
        });
    }

只是我在调试过程中得到的数据的一个例子

角度控制器:ng controller

角度服务:ng service

MVC控制器:MVC Controller

任何意见是极大的赞赏!

答案

我不确定这是否有用,但是在Angular 2/5中,当你想在控制器中触发一个方法时你可以使用method()。subscribe();也许这会对你有所帮助。

以上是关于Controller从angularjs服务帖子接收Null参数的主要内容,如果未能解决你的问题,请参考以下文章

angularjs 系列之$q和promise

angularjs怎么在两个controller之间传递数据

AngularJs(五)从Controller控制器谈谈$scope作用域

AngularJS 自定义服务指令

AngularJS 中 Controller 之间的通信

AngularJS 从控制器触发并观察服务中的对象值变化