.NET WebAPI post參數傳遞

可行的傳參形式

  1. 鍵值對對應
  2. dynamic動態類型(非跨域)
  3. 實體類
  4. JObject參數(推薦)

1.鍵值對對應

這裏所說的鍵值對並非是一般的鍵值對,是指鍵爲空,值不爲空的鍵值對
前臺請求

$.ajax({
    url: host + '/api/Source/TestParams',
    type:"post",
    data: { '': "Amon"},
    success: function(a) {
        console.log(a);
    }
});

後臺
這裏寫圖片描述

可以看到後臺是接收到參數了的,但是這種方式只能傳一個鍵值對參數,{'': 'Amon', '': 'male'} 這種參數是接收不到的,當然也可以把所有參數序列化爲字符串,後臺再進行反序列化,但是這種方式較爲繁瑣,所以不推薦

2.dynamic 動態類型(非跨域)

這種傳參方式在非跨域環境下可行,但是在跨域環境下,前臺請求時會出現 405 錯誤,雖然通過調整ajax請求參數會解決這個錯誤,但是後臺無法正常接收參數
前臺請求

$.ajax({
    url: host + '/api/Source/TestParams',
    type:"post",
    contentType: 'application/json',
    data: JSON.stringify({ 'name': "Amon", sex: 'male'}),
    success: function(a) {
        console.log(a);
    }
});

後臺
這裏寫圖片描述

當前傳參方式在非跨域環境中測試爲可以正常傳參,跨域環境暫未找到解決方法,如果有解決方法,歡迎交流

3.實體類

實體類是相對來說比較簡單的一種傳參方式,跟我們平常採用的傳參方式相似
前臺請求

$.ajax({
    url: host + '/api/Source/TestParams',
    type:"post",
    data: { 'name': "Amon", sex: 'male'},
    success: function(a) {
        console.log(a);
    }
});

後臺
這裏寫圖片描述
這裏寫圖片描述
這種傳參方式需要聲明一個實體類,所以說在改變傳參時,相應的要去更改實體類,靈活性不是很高

4.JObject 參數(推薦)

JObject傳參方式是個人比較推薦的一種方式,前臺請求傳參寫法不具迷惑性,後臺接收也較爲靈活
前臺請求

$.ajax({
    url: host + '/api/Source/TestParams',
    type:"post",
    data: { 'name': "Amon", sex: 'male'},
    success: function(a) {
        console.log(a);
    }
});

後臺
這裏寫圖片描述

如果有其他的傳參方式,歡迎交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章