无法从angularjs将复杂对象传递给webapi

时间:2016-03-06 03:17:05

标签: angularjs asp.net-web-api2

我正在使用下面的代码将数据发布到webapi控制器,但复杂的数据对象在API控制器中显示为null。但是,如果我一次传递对象,我看到的结果意味着它正在通过平面对象发送但不是复杂的物体。任何人都可以指导我在这里做错了什么,或者还有其他办法吗?

下面的

是我正在使用的数据对象和代码段: 机型:

var portfolio = { 帐户:{ACCOUNTNUMBER: '',           SSN: '',           ..此对象中的大约15个字段}, 投资:{ID: '',              总金额:'',              等等。我们还有10个以上的对象}

Foo:{F1:'',F2:'',F3:''...}

Foo1:{F11:'',F12:'',F13:''......}

}

角度服务:

var get=funtion(portfolio){
            return  $http.post('/api/values',
                JSON.stringify(portfolio),
                {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                }
            )
}

webapi控制器:

public class ValuesController : ApiController
{
    [HttpPost]
    public User Post([Frombody]portfolio model)
    {
        //logic here
    }
}

1 个答案:

答案 0 :(得分:0)

Json是http.post()默认内容类型,因此既不需要指定,也不需要对对象进行字符串化。 假设您要发布一个有效的json对象,这应该足够了:

var get = funtion(portfolio){
  return  $http.post('/api/values', portfolio); 
}