在Web api 2

时间:2015-06-23 13:10:26

标签: asp.net-web-api2

我有一个HTTP动词的动作方法:POST接受来自body的List<Student>学生对象作为动作方法的输入参数之一:

[Route("{Id:int}/save", Name = "SaveStudent")]
[HttpPost]
public IHttpActionResult AddStudent(int Id,[FromBody]List<Student> students)
{
   return Ok<List<Student>>(students);
}

现在,当我尝试使用以下请求详细信息从Fiddler测试上述方法时:

{   &#34;学生&#34;:[     {       &#34; name&#34;:&#34; Test&#34;,       &#34; rollno&#34;:null,       &#34; totalmarks&#34;:null     }   ] }

我收到400错误请求错误。 谁能帮助我知道我到底错过了什么?

1 个答案:

答案 0 :(得分:1)

数组的格式不正确,应该是这样的:

[{name: "Test", rollno: null, totalmarks: null }, {name: "Test2", rollno: null, totalmarks: null }]

C#中使用的模型类

  public class Student {
public string Name { get; set; }
public int RollNo { get; set; }
public int TotalMarks { get; set; }

}

在webapi初始化期间添加了额外的json格式解析器。

      config.MapHttpAttributeRoutes();

  var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
  jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

我希望这会帮助您立即开始工作