真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯公司自2013年起,公司以網站設計、成都網站建設、系統開發(fā)、網絡推廣、文化傳媒、企業(yè)宣傳、平面廣告設計等為主要業(yè)務,適用行業(yè)近百種。服務企業(yè)客戶數千家,涉及國內多個省份客戶。擁有多年網站建設開發(fā)經驗。為企業(yè)提供專業(yè)的網站建設、創(chuàng)意設計、宣傳推廣等服務。 通過專業(yè)的設計、獨特的風格,為不同客戶提供各種風格的特色服務。

一、ASP.NET (Core)WebApi參數傳遞實操演練

1、什么是contentType和dataType?

$.ajax contentType 和 dataType , contentType 主要設置你發(fā)送給服務器的格式,dataType設置你收到服務器數據的格式。

更簡單的解釋:
contentType: 告訴服務器,我要發(fā)什么類型的數據。
dataType:告訴服務器,我要想什么類型的數據。

在http 請求中,get 和 post 是最常用的。在 jquery 的 ajax 中, contentType都是默認的值:application/x-www-form-urlencoded,這種格式的特點就是,name/value 成為一組,每組之間用 & 聯接,而 name與value 則是使用 = 連接。如:wwwh.baidu.com/q?key=fdsa&lang=zh 這是get , 而 post 請求則是使用請求體,參數不在 url 中,在請求體中的參數表現形式也是: key=fdsa&lang=zh的形式。

鍵值對這樣組織在一般的情況下是沒有什么問題的,這里說的一般是,不帶嵌套類型JSON,也就是 簡單的JSON,形如這樣:

{a:1,b:2,c:3}

但是在一些復雜的情況下就有問題了。例如在 ajax 中你要傳一個復雜的 json 對像,也就說是對象嵌數組,數組中包括對象,如果你這樣傳:

{data: {a: [{x:2}]  }}

這個復雜對象, application/x-www-form-urlencoded 這種形式是沒有辦法將復雜的 JSON 組織成鍵值對形式(當然也有方案這點可以參考) ,你傳進去可以發(fā)送請求,但是服務端收到數據為空, 因為 ajax 沒有辦法知道怎樣處理這個數據。

這怎么可以呢?

聰明的程序員發(fā)現 http 還可以自定義數據類型,于是就定義一種叫 application/json 的類型。這種類型是 text , 我們 ajax 的復雜JSON數據,用 JSON.stringify序列化后,然后發(fā)送,在服務器端接到然后用 JSON.parse 進行還原就行了,這樣就能處理復雜的對象了。

$.ajax({ 

dataType: 'json', 

contentType: 

'application/json', 

data: JSON.stringify({a: [{b:1, a:1}]}

)})

2、什么是參數綁定(Parameter Binding)?

Asp.NET Web API中Controller是如何解析從客戶端傳遞過來的數據,然后賦值給Controller的參數的,也就是參數綁定或者模型綁定。

常見的綁定方式有如下四種。

路由值(Route Values):通過導航到路由如{controller}/{action}/{id}此時將綁定到id參數。

查詢字符串(QueryStrings):通過查詢字符串中的參數來綁定,如name=Jeffcky&id=1,此時name和id將進行綁定。

請求Body(Body):通過在POST請求中將數據傳入到Body中此時將綁定如上述Person對象中。

請求Header(Header):綁定數據到Http中的請求頭中,這種相對來說比較少見。

所以通過上述講述我們知道有多種方式將數據從客戶端傳遞到服務端,然后模型綁定會自動為我們創(chuàng)建正確的方法來綁定到后臺參數中,簡單和復雜的類型參數都會進行綁定。

3、ASP.NET WebAPI中FromUri和FromBody兩類特性區(qū)別

1)、【FromUri】特性

應用【FromUri】特性,Web API Action中參數將從URL中解析數據。

查詢字符串(QueryStrings):通過查詢字符串中的參數來綁定,如name=Jeffcky&id=1,此時name和id將進行綁定,對應WebAPI中媒體

類型格式化器JsonMediaTypeFormatter,對應的content-type是:application/json ! 

2)、【FromBody】特性

應用【Frombody】特性,Web API Action中參數將從請求體(Request Body),并且通過媒體類型格式化器獲取和綁定數據。

請求Body(Body):通過在POST請求中將數據傳入到Body中此時將綁定如上述Person對象中,對應WebAPI中媒體類型格式化器

FormUrlEncodedMediaTypeFormatter,對應的content-type是:application/x-www-form-urlencoded !

注意:對多個參數使用FromBody不起作用?。?!

二、實戰(zhàn)運用(PS:一般這幾種場景就能夠滿足我們實際開發(fā)工作需要了)

1、ASP.NET WebApi參數傳遞實操演練

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

2、ASP.NET Core WebApi參數傳遞實操演練

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

ASP.NET中怎么利用WebApi實現參數傳遞

三、總結

其實說了這么多,簡單類型綁定和復雜類型綁定在本質上沒什么太大的區(qū)別,真正的區(qū)別在于數據綁定是通過GET請求還是POST請求 。

說白了就是【FromUri】特性和【FromBody】特性之間的區(qū)別。

【FromUri】和【FromQuery】 :一般用與單個簡單類型的參數。

【FromBody】 :一般用于將多個簡單類型的參數打包成一個復雜對象類型的參數 。

注意:對多個參數使用FromBody不起作用,即也就是說,[FromBody] 修飾的參數只能有一個。

關于ASP.NET中怎么利用WebApi實現參數傳遞問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯行業(yè)資訊頻道了解更多相關知識。


文章名稱:ASP.NET中怎么利用WebApi實現參數傳遞
文章出自:http://weahome.cn/article/pcsgdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部