本節是前面四節的延續,在前面幾節中咱們建立了Web API並添加了必要的基礎設施,實現了Get、Post、和Put方法。本節中,咱們將介紹如何在Web API中實現Delete方法。數據庫
在RESTful架構中,HTTP DELETE請求用來刪除數據源中的現有記錄。c#
如今,讓咱們在StudentController中建立一個Delete操做方法,該方法將使用實體框架刪除在數據庫中現有的學生記錄。Delete類型的操做方法名稱必須以Delete開頭或者直接命名爲「Delete」。例如:DELETE(), Delete(), DeleteStudent(), DeleteAllStudents()都是用來處理Http Delete請求的有效的Delete方法的名稱。api
下面的例子演示了用來處理HTTP Delete請求的Delete操做方法的實現。架構
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public
class
StudentController : ApiController
{
public
StudentController()
{
}
public
IHttpActionResult Delete(
int
id)
{
if
(id <= 0)
return
BadRequest(
"Not a valid student id"
);
using
(var ctx =
new
SchoolDBEntities())
{
var student = ctx.Students
.Where(s => s.StudentID == id)
.FirstOrDefault();
ctx.Entry(student).State = System.Data.Entity.EntityState.Deleted;
ctx.SaveChanges();
}
return
Ok();
}
}
|
正如您所看到的,Delete操做方法包括一個int類型的id參數,由於它只須要傳入一個id就能夠刪除記錄。它從數據庫獲取與指定的id想匹配的現有學生信息,而後將其狀態標記爲刪除。這將從數據庫中刪除一個學生的信息。框架
如今,您能夠使用Fiddler發送HTTP DELETE請求,返回信息以下所示。學習
正如你在上面的圖中所看到的,HTTP DELETE請求urlhttp://localhost:64189/api/student?id=1包含查詢字符串id。這個id查詢字符串將做爲一個id參數傳遞到Delete()方法。成功執行後返回200 OK響應狀態。url
所以您能夠建立Get、Post、Put和Delete方法來實現處理HTTP Get、Post、Put和Delete請求。spa
如今,讓咱們在後續的章節中學習如何將這個Web API項目應用到ASP.NET MVC和AngularJS中。code