我对AngularJS如何将数据发布到我的WebAPI控制器感到有些困惑。通常,当我将数据从AngularJS发布到MVC控制器时,我会做这样的事情:
var data = { "value": "some string" };
$http.post('/api/products', { data
}).success(function () {...
但是,在WebAPI控制器中,字符串值始终返回为null。
将数据传递给web api控制器时,是否需要稍微以不同方式发布数据?
以下是我的控制器中的方法:
[HttpPost]
public void Post([FromBody]string value)
{
.....
}
修改 不确定这是否有帮助,但这是Fiddler的标题:
POST http://localhost:58167/api/products/ HTTP / 1.1主机: localhost:58167连接:keep-alive内容长度:11接受: application / json,text / plain, / 来源:http://localhost:58167 User-Agent:Mozilla / 5.0(Windows NT 10.0; WOW64)AppleWebKit / 537.36 (KHTML,与Gecko一样)Chrome / 44.0.2403.157 Safari / 537.36内容类型: application / json; charset = UTF-8 Referer:http://localhost:58167/ Accept-Encoding:gzip,deflate Accept-Language:en-US,en; q = 0.8
一些字符串
答案 0 :(得分:1)
将Web API更改为接受复杂类型(模型)而不是字符串。
public class Product
{
public string Value {get; set;}
}
[HttpPost]
public void Post([FromBody]Product product)
{
Debug.WriteLine(product.Value);
}