如何使用AngularJS发布到WebApi.NET/C#controller?

如何使用AngularJS发布到WebApi.NET/C#controller?,c#,angularjs,http,post,asp.net-web-api2,C#,Angularjs,Http,Post,Asp.net Web Api2,我知道周围也有类似的问题,但我找不到解决办法,所以我来了。 以下是我的AngularJS员工: $scope.someData = { Name: "Bob", PhoneNo: 123 }; var data = { SomeData: $scope.somedata }; var response = $http({ url: "/api/BlaBla/BlaBlaMethod", method: "POST", data: data, }

我知道周围也有类似的问题,但我找不到解决办法,所以我来了。 以下是我的AngularJS员工:

$scope.someData = {
    Name: "Bob",
    PhoneNo: 123
};

var data = {
    SomeData: $scope.somedata
};

var response = $http({
    url: "/api/BlaBla/BlaBlaMethod",
    method: "POST",
    data: data,
});
return response;
这是C#controller:

[HttpPost]
public string BlaBlaMethod(MyModel myModel)
{
    // do something
}
模型:

public class MyModel
{
    public SomeData SomeData { get; set; }
}

public class SomeData
{
    public string Name { get; set; }
    public int? PhoneNo { get; set; }
}
我尝试了
公共字符串blablamMethod([FromBody]MyModel MyModel)
公共列表SomeData{get;set;}
dataType:'json',data:json.stringify(data)
还有一些尝试使用angularjs$http服务,但myModel.Data无法填充。
请帮我做这个。提前感谢。

使用angular js中定义的模型对象尝试此操作,并在api控制器中接收它

$scope.SomeData= {
'Name': value,
'PhoneNo': value
}

$http.post('/api/BlaBla/BlaBlaMethod',  { SomeData : $scope.SomeData}).then(
    function(){
       // function if successfully returned from webapi.
     }, 
    function(){
       // function if error returned from webapi.
     }
);

这与
$http({url:/api/BlaBla/blablablamethod”,方法:“POST”,数据:data,JSON.stringify(data)})不一样吗?是的,这看起来有点干净,但即使在您的序列中,您也需要为成功和错误定义回调。检查这里的更多信息,我已经定义了回调,我没有把它们放在问题中,因为它们是无关的。问题在于控制器不接受数据…我已编辑了答案,请尝试一下,然后让我知道这是否解决了您的问题。我不想发布
SomeData:$scope.SomeData
,但我想发布
data
,其中包括
SomeData:$scope.SomeData
。你的回答不能满足我的需要。