从AngularJS客户端POST数据到ASP.NET WebAPI

时间:2015-09-02 16:34:56

标签: asp.net angularjs asp.net-web-api

我对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

     

一些字符串

1 个答案:

答案 0 :(得分:1)

将Web API更改为接受复杂类型(模型)而不是字符串。

public class Product
{
    public string Value {get; set;}
}

[HttpPost]
public void Post([FromBody]Product product)
{
    Debug.WriteLine(product.Value);
}