如何从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.IDnull而不是1时。如何对复杂对象进行POST?

如何从Angular将数据POST到WebAPI控制器';s$http服务

您不需要将数据包装到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);