WebApi(5) Put Delete使用

其它的前面都說過了,咱們再來看一下最後兩個方法Put Deletehtml

前臺代碼:前端

 1 @{
 2 //Layout = null;
 3 }
 4 
 5 <!DOCTYPE html>
 6 <html>
 7 <head>
 8     <meta name="viewport" content="width=device-width" />
 9     <title></title>
10     <script src="~/Scripts/jquery-1.10.2.min.js"></script>
11     <script>
12         var url = "http://" + window.location.host + "/api/ProductsAPI";
13         function submitbtn() {
14             $.ajax({
15                 url: url + "/GetAllProducts",
16                 type: "GET",
17                 dataType: "json",
18                 success: function (data) {
19                     var arr = ["<ul>"];
20                     for (var i = 0; i < data.length; i++) {
21                         arr.push("<li>id=" + data[i].Id + " name = " + data[i].Name + " Category = " + data[i].Category + " Price = " + data[i].Price + "</li>")
22                     }
23                     arr.push("</ul>");
24                     $("#div1").html(arr.join(''));
25                 }
26             });
27         }
28         function submitbtn2() {
29             $.ajax({
30                 url: url + "/PostProduct",
31                 type: "post",
32                 data:
33             {
34                 id: 100,
35                 name: "b",
36                 Category: "b",
37                 Price: 11
38             },
39                 success: function (data) {
40                     submitbtn();
41                 }
42             });
43         }
44         function DeleteProduct() {
45             var id = $("input[name='id']").val();
46             $.ajax({
47                 url: url + "/DeleteProduct/" + id,
48                 type: "Delete", success: function (data) {
49                     submitbtn();
50                 }
51             });
52         }
53 
54         function PutProduct() {
55             var id = $("input[name='id']").val();
56             $.ajax({
57                 url: url + "/PutProduct/" + id,
58                 type: "put",
59                 data: {
60                     Id: id,
61                     name: "修改的值",
62                     Category: "修改的值",
63                     Price: 111
64                 },
65                 success: function (data) {
66                     submitbtn();
67                 }
68             });
69         }
70     </script>
71 </head>
72 <body>
73     <div>
74         <div id="div1"></div>
75         <input type="button" value="查詢全部數據 get" onclick="submitbtn()" />
76         <br />
77         <input type="button" value="增長一個name爲B的數據 post" onclick="submitbtn2()" />
78         <br />
79         <input name="id" type="number" value="1" />
80         <input type="button" value="刪除一個數據 Delete" onclick="DeleteProduct()" />
81 
82         <input type="button" value="修改一個數據 put" onclick="PutProduct()" />
83     </div>
84 </body>
85 </html>

後臺代碼就直接少寫一點了:jquery

 1         public IHttpActionResult PutProduct(int id, Product product)
 2         {
 3             product.Id = id;
 4             if (repository.Update(product))
 5             {
 6                 return StatusCode(HttpStatusCode.NoContent);
 7             }
 8             return NotFound();
 9         }
10         public HttpResponseMessage DeleteProduct(int id)
11         {
12             repository.Remove(id);
13             return new HttpResponseMessage(HttpStatusCode.NoContent);
14         }

get和post不須要寫返回狀態,由於webapi默認get和post協議返回200。web

但put和delete就須要返回204了,以上的寫法是強化協議的狀態。ajax

PS:Put 和Delete方法能夠直接寫成void無返回值,webapi自動返回204。但若是失敗前端又只能獲得服務器處理成功的結果,最好的方法,仍是處理一下。json

相關文章
相關標籤/搜索