AngularJS(Post)C#Web API$Scope

AngularJS(Post)C#Web API$Scope,c#,angularjs,asp.net-web-api2,C#,Angularjs,Asp.net Web Api2,我有一个$scope 为简单起见: var cars = { "car": [ { "name": "wtf1" }, { "name": "wtf2" }, { "name": "wtf3" } ] } 我将此信息发送至: $scope.Update = facUpdate.doUpdate({ stest: cars },{}, funct

我有一个$scope

为简单起见:

    var cars = {
        "car": [
            { "name": "wtf1" },
            { "name": "wtf2" },
            { "name": "wtf3" }
        ]
    }
我将此信息发送至:

    $scope.Update = facUpdate.doUpdate({
        stest: cars
    },{}, function success(data, status, headers, config) {
            console.log(data);
    }, function err(data, status, headers, config) {
        console.log(data);
        //errorhandler(data.status, $location)
    });
我的C#API中有两个模型

标题信息

POST /api/UpdateTest?stest=Saab&stest=Volvo&stest=BMW HTTP/1.1
Host: localhost:53839
Accept: application/json, text/plain, */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Content-Type: application/json;charset=UTF-8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)     Chrome/35.0.1916.114 Safari/537.36
简而言之,我的angular js上有一个$scope,它已经改变了,我想通过post将该对象传递回我的api

如果我使用一个简单的字符串示例,它可以工作,但是当我使用复杂对象时,它就不工作了

有人知道为什么吗

让我知道


工厂信息

myApp.factory('facUpdate', function ($resource) {
    return $resource('/api/UpdateSettings/:eid', {}, {        
        doUpdate: { method: 'POST', isArray: false}
    })
});

回答至少这对我有用

在Web API帖子上(stringstest)

那就做吧


ChartSettingsModelYourObject=JsonConvert.DeserializeObject(stest)

ChartSettingsModelMyClass=JsonConvert.DeserializeObject(stest)

如果在JSON中将
car
数组重命名为
cars
,会发生什么?现在,JSON与您的
CarModel
不匹配。我不能说这是否是问题的全部,因为你没有具体说明它以什么方式不起作用。让我试试。。但是它基本上是空的。那也不行,基本上是空的?那是什么?它要么是空的,要么不是空的。如果JSON的对象名与ViewModel的属性不匹配,ASP.NET的模型绑定将不会。。。那么,请正确地绑定到模型:P让我知道这是否有效,如果无效,请在我调试时编辑您关于什么具体不起作用的问题。公共HttpResponseMessage Post(CarModel stest)stest(CarModel)为空。当我检查requesturi数据时,如下所示:{“cars”:[{“name”:“wtf1”},{“name”:“wtf2”},{“name”:“wtf3”}]}让我看看发布数据的js。
POST /api/UpdateTest?stest=Saab&stest=Volvo&stest=BMW HTTP/1.1
Host: localhost:53839
Accept: application/json, text/plain, */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Content-Type: application/json;charset=UTF-8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)     Chrome/35.0.1916.114 Safari/537.36
myApp.factory('facUpdate', function ($resource) {
    return $resource('/api/UpdateSettings/:eid', {}, {        
        doUpdate: { method: 'POST', isArray: false}
    })
});