webapi从Angular调用,但参数始终为null

时间:2017-04-05 11:21:37

标签: angularjs asp.net-web-api

我正在尝试创建一个接受复杂类型的webApi方法,此方法可通过AngularJs $ http.post()调用,但收到的值始终为null。尝试了互联网上几乎所有可能的建议,似乎没有任何工作!我的代码片段如下。

var config = {
        method: "POST",
        url: URLService.myBaseURL() + 'api/RequestApi/createNewRequest',
        headers: {
            "Content-Type": "application/json"
        },
        data: $scope.dataToSubmit
    }

    $http(config)
    .then(function (success) {
        alert('A New request Created Successfully!!')
    }, function (error) {
        alert('There was an error while creating the request!!')
    })

C#webApi代码

public class RequestApiController : ApiController
{
    [HttpPost]
    public string createNewRequest([FromBody]Request dataSubmitted)
    {
      //BL here...
    }
}

public class Request {
  List<Activities> clearanceReqDetails { get; set; }
  .....
}
public class Activities{
  ....
}

任何帮助!!

1 个答案:

答案 0 :(得分:0)

问题已解决!!这是类属性的访问说明符的问题,因为序列化/反序列化不仅发生在类中,而且类属性也需要具有适当的访问说明符。 就我而言,我通过添加公共&#39;解决了这个问题。访问说明符到两个类的属性,如下所示。

public class Request {
  **public** List<Activities> clearanceReqDetails { get; set; }
...
}
public class Activities{
  **public** ...
}