亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET Web API queryString訪問的一點總結

2019-11-17 01:56:05
字體:
來源:轉載
供稿:網友

asp.net Web API queryString訪問的一點總結

自從開始使用ASP.NET Web API,各種路由的蛋疼問題一直困擾著我,相信大家也都一樣。

Web API的路由配置與ASP.MVC類似,在App_Start文件夾下,有一個WebApiConfig類文件config.Routes.MapHttPRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional });以上為一個空Web API項目的路由配置。我們新建一個Controllerpublic class TestRouteController : ApiController{ public HttpResponseMessage GetUser(int id) { return Request.CreateResponse(HttpStatusCode.OK, new { status = "success", data = new { Id = id, Name = "用戶" + id } }); }}按照msdn所述To find the action, Web API looks at the HTTP method, and then looks for an action whose name begins with that HTTP method name. For example, with a GET request, Web API looks for an action that starts with "Get...", such as "GetContact" or "GetAllContacts". This convention applies only to GET, POST, PUT, and DELETE methods. You can enable other HTTP methods by using attributes on your controller. We’ll see an example of that later.Web API 約定了,如果方法名帶有Get,則為Get請求,其他請求方式同樣道理當然,我們也可以使用HttpGet、HttpPost等特性,或者AcceptVerbs("GET","POST",...)等等,來控制我們的請求方式。根據路由配置,我們可以理解,我們的訪問地址應為:api/TestRoute/123,請求方式為GET  毫無疑問的,我們拿到了想要的結果:{"status":"success","data":{"Id":123,"Name":"用戶123"}}按照我們之前MVC路由的理解,路由中,new { id = RouteParameter.Optional }表示id參數是可選參數,我們期望的,在沒有id傳入的情況下,地址可以正常訪問,id為默認值0。很遺憾,直接404了。我們簡單改動一下代碼public HttpResponseMessage GetUser(int id = 0){ return Request.CreateResponse(HttpStatusCode.OK, new { status = "success", data = new { Id = id, Name = "用戶" + id } });}我們將方法參數id設定了一個默認值,居然成功了我們再變一種訪問方式,api/TestRoute/?id=123在有參數的情況下,是可以正常訪問的。而訪問api/TestRoute/?id=,則會出現 {"Message":"請求無效。","MessageDetail":"對于“WebApiTest.Controllers.TestRouteController”中方法“System.Net.Http.HttpResponseMessage GetUser(System.DateTime)”的不可以為 null 的類型“System.DateTime”的參數“time”,參數字典包含一個 null 項。可選參數必須為引用類型、可以為 null 的類型或聲明為可選參數。"}的400錯誤。將id參數設定為int?類型,我們訪問http://localhost:62488/api/TestRoute/?id=則可正常訪問,并且此時id為null。經過以上的測試,我們是否可以得出結論:在ASP.NET Web API中,并且我們熟知的C# int未賦值時默認0,bool未賦值時默認false等在此都是不適用的如果請求的參數在方法上定義,則參數名必須拼接在訪問地址上我們再試一種情況,我們將需要傳入的參數放到一個類中,在方法上直接傳入這個參數對象public class QueryParams{ public int Id { get; set; } public string Name { get; set; }}public HttpResponseMessage GetUser(QueryParams queryParams){ return Request.CreateResponse(HttpStatusCode.OK, new { status = "success", data = new { Id = queryParams.Id, Name = "用戶:" + queryParams.Name } }); }直接訪問api/TestRoute/,我們會發現,不管我們是否傳入參數,我們的參數對象都是null。這時候我們需要為我們的參數對象添加一個FromUri的特性,來告訴web api,我們這個對象的中屬性都是從url鏈接上傳過來的這時候依舊不傳入任何參數,卻驚奇的發現,我們的對象參數不再是null,其中屬性的值也與我們料想的一致(C# int未賦值時默認0,string默認null)經過這進一步的嘗試,我們可以完善我們的結論通過queryString方法拼接參數時如果請求的參數為C#語法定義的類型,且在方法上定義,則參數名必須拼接在訪問地址上如果請求的參數為一個實體類,則需要為該參數添加[FromUri]的特性。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
少妇高潮 亚洲精品| 亚洲欧美自拍一区| 最近2019中文字幕第三页视频| 日韩成人av在线| 久久天天躁狠狠躁老女人| 一道本无吗dⅴd在线播放一区| 久久久久久久爱| 国产精品久久久精品| 国产精品扒开腿爽爽爽视频| 一区二区欧美日韩视频| 亚洲xxxxx性| 亚洲嫩模很污视频| 国产亚洲一级高清| 精品久久久久久亚洲精品| 国产日韩欧美日韩大片| 国产日韩精品视频| 亚洲精品女av网站| 久久国产视频网站| 精品欧美一区二区三区| 日韩激情av在线免费观看| 日韩在线视频中文字幕| 久久精品国产成人| 亚洲激情在线观看视频免费| 欧美极品欧美精品欧美视频| 亚洲色图第一页| 91手机视频在线观看| 欧美成人一区在线| 最近2019年中文视频免费在线观看| 中文字幕无线精品亚洲乱码一区| 91欧美精品成人综合在线观看| 国产成人综合av| 国产亚洲精品91在线| 午夜精品福利在线观看| 亚洲老板91色精品久久| 国产婷婷97碰碰久久人人蜜臀| 亚洲香蕉成视频在线观看| 成人黄色免费网站在线观看| 亚洲欧美成人一区二区在线电影| 日韩精品久久久久| 亚洲3p在线观看| 在线观看国产成人av片| 成人黄色影片在线| 亚洲黄色av女优在线观看| 久久精品视频网站| 色老头一区二区三区| 美女av一区二区三区| 国产精品户外野外| 欧美激情一级精品国产| 亚洲欧美日韩精品久久亚洲区| 欧美激情精品久久久久久| 国产视频亚洲视频| 欧美日韩激情小视频| 在线视频欧美日韩精品| 欧美成人精品一区二区| 国模精品一区二区三区色天香| 国产一区二区三区在线播放免费观看| 国产日韩欧美黄色| 欧美精品福利视频| 亚洲日本欧美日韩高观看| 欧洲一区二区视频| 午夜欧美大片免费观看| 欧美人与性动交a欧美精品| 国产91精品久久久| 精品久久久久久中文字幕| 久久九九有精品国产23| 精品亚洲一区二区三区在线播放| 精品视频久久久久久| 欧美在线欧美在线| 欧美性视频在线| 国外成人免费在线播放| 51精品在线观看| 亚洲成色999久久网站| 日韩欧美极品在线观看| 亚洲一区二区三区777| 国产精品日韩欧美综合| 亚洲欧美日韩另类| 丁香五六月婷婷久久激情| 在线播放国产一区二区三区| 国产日韩换脸av一区在线观看| 97在线免费视频| 精品无码久久久久久国产| 欧美激情网站在线观看| 国产一区深夜福利| 午夜欧美不卡精品aaaaa| 欧美人交a欧美精品| 欧美日韩日本国产| 成人午夜一级二级三级| 久久精品国产精品| 久久精品国产亚洲| 精品成人av一区| 91久久久久久久久| 欧美性xxxx在线播放| 亚洲跨种族黑人xxx| 国产精品久久久久久久久久久新郎| 成人免费淫片视频软件| 欧美日韩美女在线| 午夜精品福利视频| 久久夜色精品国产欧美乱| 日本久久久久久久久| 伊人亚洲福利一区二区三区| 久久影院资源站| 一区二区成人精品| 激情亚洲一区二区三区四区| 欧美资源在线观看| 亚洲精品免费网站| 亚洲情综合五月天| 色综合久久88色综合天天看泰| 91av在线国产| 欧美激情一二区| 91精品国产综合久久男男| 最近2019免费中文字幕视频三| 国产成+人+综合+亚洲欧美丁香花| 久久久久久国产精品美女| 热99在线视频| 另类视频在线观看| 亚洲精品天天看| 国产性猛交xxxx免费看久久| 亚洲视频在线观看视频| 欧美精品激情在线观看| 国产精品看片资源| 在线激情影院一区| 97在线免费视频| www.日本久久久久com.| 国产精品 欧美在线| 国产亚洲欧美另类中文| 中文字幕国产亚洲2019| 亚洲美女激情视频| 黑人极品videos精品欧美裸| 成人性生交大片免费观看嘿嘿视频| 91高清视频免费观看| 欧美性猛交xxxx乱大交| 亚洲一区国产精品| 久久国产精品影片| 成人黄色免费在线观看| 国产亚洲精品久久久优势| 视频在线观看一区二区| 国产精品久久久久久av福利软件| xxxx欧美18另类的高清| 亚洲精品不卡在线| 日韩免费中文字幕| 国产成人欧美在线观看| 亚洲欧美国产一本综合首页| 大量国产精品视频| 91精品久久久久久久久久另类| 精品久久久一区| 国产精品国产三级国产aⅴ9色| 精品国模在线视频| 情事1991在线| 最新国产精品亚洲| 欧美日韩成人网| 精品久久久久久久久久| 性金发美女69hd大尺寸| 国产情人节一区| 欧美大片免费观看在线观看网站推荐| 亚洲国产一区自拍| 69精品小视频| 日本在线观看天堂男亚洲| 国内精品小视频在线观看| 欧洲成人性视频| 在线观看日韩www视频免费| 成人欧美在线视频| 97精品国产97久久久久久| 51久久精品夜色国产麻豆| 精品国产电影一区|