Web Api MVC绑定FormDataCollection

时间:2013-10-31 08:05:04

标签: asp.net-mvc-4 asp.net-web-api

我有更多的Jquery Ajax调用或类似下面的

 $.ajax(url, {
         type: httpMethod,
         contentType: "application/json; charset=utf-8",
         data: '{name:"abc",age:23,address:"29 judd ce"}',

网络API动作

  public HttpResponseMessage Post([FromBody] FormDataCollection data)
        {

但参数'data'始终为null。

这是一个web api限制还是我做错了

由于

2 个答案:

答案 0 :(得分:1)

改为使用视图模型:

public class UserViewModel
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Address { get; set; }
}

您的控制器操作将采取:

public HttpResponseMessage Post(UserViewModel model)
{
    ...
}

答案 1 :(得分:0)

它可能

 $.ajax("http://localhost:57281/api/Values", {
                    type: "POST",
                    data: '{name:"abc",age:23,address:"29 judd ce"}',
                    contentType: "application/x-www-form-urlencoded"
                });



//POST api/values
public void Post([FromBody]FormDataCollection value)
{

}

没有[FromBody]也能正常工作 但是你只能获得一对键/值

更好地使用类似的东西

  $.ajax("http://localhost:57281/api/Values", {
                    type: "POST",
                    data: 'name=abc&age=23&address=29 judd ce',
                    contentType: "application/x-www-form-urlencoded"
                });

&安培;用作每对

的分隔符