如何从Angular将数据POST到WebAPI控制器';s$http服务
本文关键字:服务 http 控制器 WebAPI Angular 数据 POST | 更新日期: 2023-09-27 18:26:34
我试图遵循这个例子。
这是我的C#代码:
public class MyModel
{
int? ID { get; set; }
}
public class MyResourceController : ApiController
{
[HttpPost]
public MyModel MyPostAction(MyModel model)
{
return model;
}
}
这是我的JavaScript:
var data = { model: { ID: 1 } };
$http.post(
'/api/MyResource/MyPostAction',
JSON.stringify(data),
{
headers: {
'Content-Type': 'application/json'
}
}
);
当我在操作中设置断点并且model.ID
是null
而不是1
时。如何对复杂对象进行POST?
您不需要将数据包装到model
属性中:
var data = { ID: 1 };
$http.post('/api/MyResource/MyPostAction', data);
将public
添加到MyModel
上的属性中修复了它(facepalm)。
我最终在客户端上使用了这个:
var data = { ID: 1 };
$http.post('/api/MyResource/MyPostAction', data);
谢谢大家。
$http.post('/api/MyResource/MyPostAction', data);
删除JSON.stringify并按原样发布数据。
您也不需要指定json头,因为它是post的默认值。
在服务器上:
如果您只使用json ,请从webapi中删除Xml
//WebApiConfig.js
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);