天天看點

webapi的post和get請求總結

1、get請求,傳輸基礎類型資料

[HttpGet]
public string GetTestData(int id,string name)
{
    return id+name;
}
$.ajax({
        type:"get",
        url:"http://xxxx/api/Test/GetTestData",
        data: { id: , name:"lili"},
        success:function(data, status) { }
}); 
           

2、get請求,傳遞實體資料

public class TestModel
{
    public string ID {get;set; }
    public string Name {get;set; }
}
[HttpGet]
public string GetTestDataByModel([FromUri]TestModel testModel)
{
     return testModel.ID+testModel.Name;
}
$.ajax({
        type:"get",
        url:"http://xxx/api/Test/GetTestDataByModel",
        data: { ID:"1", Name:"lili"},
        success:function(data, status) { }
}); 
           

3、post請求,傳遞基礎類型參數

$.ajax({
        type:"post",
        url:"http://xxx/api/Test/PostTestData",
        data: {"":"lili"},
        success:function(data, status) {}
    });
           

注意:不能使用 data: {“name”:”lili”}。因為FromBody的機制是=value,沒有key的概念。

[HttpPost]
public bool PostTestData([FromBody]string name)
{
   return true;
}
           

4、post請求,傳遞實體類型參數

[HttpPost]
public bool PostTestDataModel(TestModel testModel)
{
    return true;
}
public class TestModel
{
    public string ID {get;set; }
    public string Name {get;set; }
}
$.ajax({
       type:"post",
       url:"http://xxx/api/Test/PostTestDataModel",
       data: { ID:"1", Name:"lili"},
       success:function(data, status) {}
   });
           

或者

var postdata = { ID:"1", Name:"lili"};
$.ajax({
    type:"post",
    url:"http://xxx/api/Test/PostTestDataModel",
    contentType:'application/json',
    data: JSON.stringify(postdata),
    success:function(data, status) {}
});
           

若是沒定義接口的實體類,可以使用類型dynamic。

5、post,傳遞基礎類型數組

var arr = ["1","2","3","4"];
$.ajax({
       type:"post",
       url:"http://xxx/api/Test/PostTestDataArray",
       contentType:'application/json',
       data: JSON.stringify(arr),
       success:function(data, status) { }
   });
[HttpPost]
public bool PostTestDataArray(string[] ids)
{
     return true;
}
           

6、post,傳遞實體集合

var arr = [
       { ID:"1", Name:"l1"},
       { ID:"2", Name:"l2"},
       { ID:"3", Name:"l3"}
   ];
   $.ajax({
       type:"post",
       url:"http://xxx/api/Test/PostTestDataList",
       contentType:'application/json',
       data: JSON.stringify(arr),
       success:function(data, status) {}
   });
[HttpPost]
public bool PostTestDataList(List<TestModel> mList)
{
   return true;
}
           

補充:許多場景可以通過使用dynamic和json來傳遞和接收對象以達到簡化問題的效果。