2015-11-12 183 views
1

我不知道,因为当我按角度做一篇文章时,没有填充对象,例如类别或状态。只是产品。 但是请注意,Request.Form列表中的信息就在那里。 活页夹未正确执行。 我在做什么错? 它是任何Web API配置? 我试过通过application/json发送数据,[frombody] ...我没有选择。 在此先感谢。asp.net 5/mvc 6/model binder/angular

var product = { 
 
    id: 1, 
 
    name: "Name", 
 
    categories: [ 
 
    { id: 1, name: "name 1" }, 
 
    { id: 2, name: "name 2" } 
 
    ], 
 
    status: { id: 1, name: "active" } 
 
}; 
 

 
var config: ng.IRequestConfig; 
 
config = { url: "", method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;' } }; 
 

 
self.$http.post("api/produto", $.param(product), config) 
 
.success(function() { 
 
    alert("OK"); 
 
});

[HttpPost] 
    public ProductInfo Post(ProductInfo item) 
    { 
     return item; 
    } 


model image

request image

回答

0

试试这个:

$http({ 
     url: "api/produto", 
     method: "POST", 
     data: product, 
     headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
    }) 
    .then(function(response) { 
      // success 
    }, 
    function(response) { // optional 
      // failed 
    }); 
0

或者你可以使用快捷方法:

$http.post('api/produto', data).then(successCallback, errorCallback); 
0

这里是我想尝试

var product = { 
    id: 1, 
    name: "Name", 
    categories: [ 
    { id: 1, name: "name 1" }, 
    { id: 2, name: "name 2" } 
    ], 
    status: { id: 1, name: "active" } 
}; 

var config: ng.IRequestConfig; 
config = { url: "", method: "POST", headers: { 'Content-Type': 'application/json;charset=utf-8;' } }; 

self.$http.post("api/produto", product, config) 
.success(function() { 
    alert("OK"); 
}); 

什么不同的是,我发送实际的JavaScript对象和它将被序列化为JSON。 Web API将能够将JSON反序列化为纯C#对象。

试图匹配键/值对通常只是在复杂的对象上疯狂。

0

没有办法做到这一点。

要么我创建一个自定义模型联编程序,要么我会有新的web api 6 mvc总是使用frombody并强制json发布。

至少这就是我对我的测试所做的。 它只是发送json和使用frombody

该文档,真正改变绑定到这个新的集成模型MVC的web API 2。