欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ASP.NETCoreMVC如何獲取請求的參數(shù)-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“ASP.NET Core MVC如何獲取請求的參數(shù)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

長春ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

前言

一次HTTP請求,就是一次標(biāo)準(zhǔn)IO操作。請求是I,是輸入;響應(yīng)式O,是輸出。任何web開發(fā)框架,其實都是在干這兩件事:

  • 接受請求并進(jìn)行解析獲取參數(shù)

  • 根據(jù)參數(shù)進(jìn)行渲染并輸出響應(yīng)內(nèi)容

所以我們學(xué)習(xí)一個框架,我認(rèn)為最首要的是知道如何從請求中獲取參數(shù)。http請求攜帶參數(shù)的地方主要有下面幾個地方:

  • URL

  • Header

  • Body

下面看看ASP.NET Core是如何從這幾個位置獲取參數(shù)的。

通過URL獲取參數(shù)

通過URL傳參是HTTP最最常用的辦法。這里簡單介紹下URL相關(guān)的知識。一個URL主要分成4個部分,以http://localhost:5000/fromurl/test?name=mjzhou&age=10為例:



http://協(xié)議
localhost:5000主機(jī)地址
/fromurl/testPATH
name=mjzhou&age=10QueryString

我們通常使用PATH跟QueryString來傳遞參數(shù)。新建一個MVC項目,新建一個Controller名為FromUrlController,通過幾個Action來演示如何從URL上獲取參數(shù)。

通過QuerySting獲取參數(shù)

Request.Query對象

  // /fromurl/test?name=mjzhou
  public IActionResult Test()
  {
   var name = Request.Query["name"];
   return Content(name);
  }

Request.Query對象包含了本次請求的QueryString的鍵值對列表,所以可以通過它輕松獲取QueryString上攜帶的參數(shù)。

自動參數(shù)綁定

  // /fromurl/test?name=mjzhou
  public IActionResult Test1(string name)
  {
   return Content(name);
  }

如果Action的型參的名稱跟QueryString的Key一致,則MVC框架會自動幫我們綁定參數(shù)的值,不用手動獲取。

  public IActionResult Test2([FromQuery(Name = "id")]string bh)
  {
   return Content(bh);
  }

如果參數(shù)綁定的名稱跟QueryString的Key不一致,可以使用FromQueryAttribute強(qiáng)制指定綁定的Key的名稱。

通過PATH獲取參數(shù)

Request.Path對象

//  /fromurl/test3
  public IActionResult Test3()
  {
   var path = Request.Path;
   return Content(path);
  }

Request.Path對象包含了本次http請求的Path的原始信息,一般可以通過/來分隔,手工獲取想要的參數(shù)。

自動參數(shù)綁定

//  /fromurl/Test4/mjzhou/1000
  [Route("FromUrl/test4/{name}/{id}")]
  public IActionResult Test4(string name, int id)
  {
   return Content($"{name}/{id}");
  }

Path的自動參數(shù)綁定,需要配合RouteAttribute實現(xiàn),RouteAttribute主要是指定一個Path的模板,通過這個模板可以告訴路由是否匹配這個Action,另外一個就是可以告訴參數(shù)綁定,如何解析這個path實現(xiàn)參數(shù)綁定。

  [Route("FromUrl/test6/{name}/{id}")]
  public IActionResult Test6([FromRoute(Name ="name")]string xm, [FromRoute(Name = "id")]int bh)
  {
   return Content($"{xm}/{bh}");
  }

如果Action的型參名稱跟RouteAttribute模板的中的名稱不一樣,那么可以使用FromRoute強(qiáng)制指定解析的名稱。

  [HttpGet("FromUrl/test5/{name}/{id}")]
  public IActionResult Test5(string name, int id)
  {
   return Content($"{name}/{id}");
  }

HttpGetAttribute、HttpPostAttribute等attribute同樣可以完成RouteAttribute的效果,而且還指定了action接受的HTTP Method的方法,可以說是加強(qiáng)版的RouteAttribute。

從Header上獲取參數(shù)

添加一個FromHeaderController,通過幾個action來演示如果從http headers上獲取參數(shù)。

Request.Headers對象

  // /FromHeader/test
  public IActionResult Test()
  {
   var myName = Request.Headers["myName"];

   return Content(myName);
  }

Request.Headers是一個字典,包含了本次請求的Headers。所以我們可以通過Request.Headers對象輕松獲取某個header的值。

自動參數(shù)綁定

  public IActionResult Test1([FromHeader]string myName)
  {
   return Content(myName);
  }

通過在action的型參上打上FromHeaderAttribute,可以告訴框架自動從header獲取參數(shù)。

  public IActionResult Test2([FromHeader(Name = "myName")]string name)
  {
   return Content(name);
  }

如果action的型參跟header的key值不一致,可以通過FromHeaderAttribute強(qiáng)制指定匹配的header的key值。

從Body獲取參數(shù)

我們開發(fā)的時候經(jīng)常通過表單提交數(shù)據(jù),或者通過AJAX往后臺提交一個JavaScript對象,本質(zhì)上這些數(shù)據(jù)都是通過HTTP的Bady提交回去的。新建一個FromBodyController控制器,通過幾個Action來演示如何獲取Body的參數(shù)。

Request.Body對象

  public class model1
  {
   public string NAME { get; set; }
  }

  public async Task<IActionResult> Test()
  {
   Request.EnableBuffering();

   string body = "";
   var stream = Request.Body;
   if (stream != null)
   {
    stream.Seek(0, SeekOrigin.Begin);
    using (var reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
    {
     body = await reader.ReadToEndAsync();
    }
    stream.Seek(0, SeekOrigin.Begin);
   }

   var model = JsonConvert.DeserializeObject<model1>(body);

   return Content(model.NAME);
  }

Request.Body是一個Stream,保存了本次請求的body數(shù)據(jù)。所以我們只要把這個stream讀出來,就能獲取提交的數(shù)據(jù)。有了原始的數(shù)據(jù),就可以通過反序列化等操作轉(zhuǎn)換為模型,更簡單的獲取參數(shù)了。注意,ASP.NET Core想要讀取這個對象,必須先調(diào)用Request.EnableBuffering()這個方法。


使用postman測試一下:


ASP.NET Core MVC如何獲取請求的參數(shù)

參數(shù)自動綁定

  public IActionResult Test1([FromBody]model1 model)
  {
   return Content(model.NAME);
  }

使用FromBodyAttribute可以把body的數(shù)據(jù)自動反序列化成型參的模型。但是請注意使用[FromBody]請求的Content-Type必須是application-json。


使用postman測試下:


ASP.NET Core MVC如何獲取請求的參數(shù)
ASP.NET Core MVC如何獲取請求的參數(shù)

  public IActionResult Test2([FromForm]model1 model)
  {
   return Content(model.NAME);
  }

使用FromFormAttribute可以把body的數(shù)據(jù)自動反序列化成型參的模型。但是請注意使用[FromForm]請求的Content-Type必須是application/x-www-form-urlencoded。


使用postman測試下:
ASP.NET Core MVC如何獲取請求的參數(shù)


ASP.NET Core MVC如何獲取請求的參數(shù)

總結(jié)

ASP.NET Core獲取請求參數(shù)主要從URL,Headers,Body等位置獲取。我們可以通過Request.Query、Request.Headers、Request.Body來手工獲取數(shù)據(jù)。也可以通過[FromQuery]、[FromHeader]、[Frombody]等Attribute來實現(xiàn)參數(shù)的自動綁定。

“ASP.NET Core MVC如何獲取請求的參數(shù)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站題目:ASP.NETCoreMVC如何獲取請求的參數(shù)-創(chuàng)新互聯(lián)
本文URL:http://aaarwkj.com/article34/csospe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、商城網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)頁設(shè)計公司、域名注冊、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
综合av在线一区天堂| 在线播放国内自拍情侣酒店| 中文字幕日本人妻少妇| 91在线播放欧美国产视频| 五月婷婷丁香六月在线综合| 日韩欧美亚洲国产每日更新| 日韩精品中文字幕影视| 青青草原精品视频在线| 日韩黄av在线免费观看| 欧美人妻不卡一区二区久久 | 麻豆文化传媒免费网址| 国产精品亚洲一区二区在| 欧美精品成人在线一区| 人妻熟妇av在线一区二区三区| 国产午夜福利av在线麻豆| 国产内射一级一片内射高清视频1 亚洲一区二区三区不卡伦理 | 夜夜爽精品国产亚洲av成人| 蜜桃臀视频一区二区三区| 99热免费精品在线观看| 日本人妻在线一区二区三区| 少妇按摩高潮呻吟av| 国产精品一级在线播放| 色呦呦中文字幕在线播放| 欧美 国产 综合 日韩| 成人高清乱码一区二区三区| 91成人大片在线观看| 在线观看不卡的黄色地址| 日本三卡=卡无人区| 91人妻精品一区二区| 久久精品国产亚洲成人av| 在线欧美日韩一区二区三区| 日本精品a秘在线观看| 亚洲精品尤物福利在线一区| 国产在线观看一区二区三区精品| 成人av在线天堂一区二区三区| 亚洲国产第一尤物视频| 日韩在线一区中文字幕| 亚洲综合av一区二区| 国产女人高潮流白丝视频| 国产免费久久黄av片| 亚洲一区二区三区四区国产|