Javascript 从angularjs向webAPi发送post请求时,参数为null

Javascript 从angularjs向webAPi发送post请求时,参数为null,javascript,c#,json,angularjs,asp.net-web-api2,Javascript,C#,Json,Angularjs,Asp.net Web Api2,我试图调用一个方法,但参数显示为null 服务器端代码 [HttpPost] public IHttpActionResult PostRule(ActionRuleParameter actionRule) { // SOME CODE return BadRequest(); } public class ActionRuleParameter

我试图调用一个方法,但参数显示为null

服务器端代码

[HttpPost]
        public IHttpActionResult PostRule(ActionRuleParameter actionRule)
        {
            // SOME CODE               
            return BadRequest();
        }

        public class ActionRuleParameter
        {
            public string action;
            public string rule;
        }
addRule: function ($scope) {
            //var data = { "action": "post", "rule": { "ID": "1", "Name": "Ramesh", "PassFail": "Pass" } }

            var data1 = { "action": "post","rule":"rule" };


            $http({
                url: urlContent + '/api/Rules',
                method: "POST",
                data: { "actionRule": data1 }
            }).success(function (response) {
                $scope.rules = response;
            });;
        },
客户端代码

[HttpPost]
        public IHttpActionResult PostRule(ActionRuleParameter actionRule)
        {
            // SOME CODE               
            return BadRequest();
        }

        public class ActionRuleParameter
        {
            public string action;
            public string rule;
        }
addRule: function ($scope) {
            //var data = { "action": "post", "rule": { "ID": "1", "Name": "Ramesh", "PassFail": "Pass" } }

            var data1 = { "action": "post","rule":"rule" };


            $http({
                url: urlContent + '/api/Rules',
                method: "POST",
                data: { "actionRule": data1 }
            }).success(function (response) {
                $scope.rules = response;
            });;
        },

操作
规则
显示为空。

我用Angular和新的ASP.NET堆栈处理了这个问题。添加[FromBody]为我修复了它,请尝试:

 [HttpPost]
 public IHttpActionResult PostRule([FromBody]ActionRuleParameter actionRule)
 {
     // SOME CODE               
     return BadRequest();
 }

您需要在参数之前添加[FromBody]

    public IHttpActionResult PostRule([FromBody]ActionRuleParameter actionRule)
    {
        // SOME CODE               
        return BadRequest();
    }