在 Web api 2 的情况下,模型绑定不适用于 List<T> T

Model binding not working for List<T> T in case of Web api 2

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

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

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

{ "students": [ { "name": "Test", "rollno":空, "totalmarks": 空 } ] }

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

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

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

在 C# 中使用的模型 class

  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();

我希望这会帮助你现在开始工作