[英]asp.net 5 / mvc 6 / model binder / angular
我不知道,因为当我按角度进行发布时,不会填充对象,例如类别或状态。 只是产品。 但是,请注意,Request.Form列表中包含该信息。 活页夹执行不正确。 我究竟做错了什么? 它是任何Web API配置吗? 我尝试通过application / json发送数据,[frombody] ...我没有选择。 提前致谢。
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;
}
尝试这个:
$http({
url: "api/produto",
method: "POST",
data: product,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.then(function(response) {
// success
},
function(response) { // optional
// failed
});
或者,您可以使用快捷方式:
$http.post('api/produto', data).then(successCallback, errorCallback);
这是我会尝试的
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#对象。
试图匹配键/值对通常只是对复杂对象的疯狂。
没有办法做到。
我要么创建一个自定义模型活页夹,要么我将拥有新的Web API 6 mvc始终使用frombody
并通过json强制运送。
至少那是我对测试所做的。 它只是发送json并使用frombody
。
该文档确实进行了更改,将用于此新集成模型的Web api 2绑定到MVC。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.