我是网络API的新手。我试图在API控制器中将Student{ID, Name, Age}
的对象发布到此操作方法:
public void PostStudent([FromBody]Student student) //I omitted FromBody attr but it doesn't help
{
students.Add(student);
}
students
是List<Student>
在fiddler中,我以一种JSON格式向API发送POST请求,如下所示:
{
"ID": 454,
"Name": "Tamara",
"Age": 15
}
我还将Content-Type指定为application / json。
但执行此请求并不会添加数据?
修改
学生班:
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
这是ApiController:
public class DefaultController : ApiController
{
List<Student> students = new List<Student>
{
new Student { ID=1, Name="Rami", Age=67},
new Student { ID= 2, Name="Nermeen", Age=44 },
new Student { ID= 3, Name="Ashraf", Age= 30}
};
public List<Student> GetStudents()
{
return students.ToList();
}
public Student GetOne(int id)
{
return students.Find(s => s.ID == id);
}
//[ResponseType(typeof(Student))]
public void PostStudent(Student student)
{
students.Add(student);
}
}
答案 0 :(得分:2)
根据您的上一条评论:
请记住,为每个请求重新创建api控制器,因此如果只是将数据添加到控制器上的属性,则不会保留数据。请查看请求生命周期:https://www.asp.net/mvc/overview/getting-started/lifecycle-of-an-aspnet-mvc-5-application
您可以通过创建单个类来保存数据,或者将其存储在数据库中来保留它。