我是web API的新手。我想要的Student{ID, Name, Age}
對象發佈到這個操作方法在API控制器:無法將複雜對象發佈到Web API?
public void PostStudent([FromBody]Student student) //I omitted FromBody attr but it doesn't help
{
students.Add(student);
}
students
是List<Student>
在提琴手我在一個JSON格式像這樣發送POST請求的API :
{
"ID": 454,
"Name": "Tamara",
"Age": 15
}
我將Content-Type指定爲application/json。
但執行此請求不會添加數據?
編輯
Student類:
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);
}
}
你的'Student' C#類是什麼樣的?如果你在你的控制器上放置一個斷點,當你發佈到控制器時它肯定會觸發斷點? – JanR
「學生」只是我提到的三個屬性('ID','Name','Age')的簡單類。我設置了一個缺點(我不知道我可以用API和Fiddler做到這一點,謝謝!)對象已成功接收,流程進入「Add」方法,但請求GET不顯示新對象,我爲'Student'類添加了代碼並且添加了GET操作 –
您是否實際上擊中了控制器?如果沒有,那麼你需要驗證你的對象格式正確。 我建議將PostStudent中的傳入類型更改爲「動態」。通過這種方式,您可以檢查到達的內容並確認它與您認爲正在發送的格式相符。 – Monza