国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ASP.NET Core 路由模板中 * 與 ** 的區(qū)別詳解 - 全面解析 {*slug} 與 {**slug}

在 ASP.NET Core 中,路由是處理 URL 請求的關鍵組件之一。路由模板允許我們定義特定格式的 URL,并將其映射到相應的處理程序或控制器動作。在路由模板中,我們可以使用 `*` 和 `**` 來捕獲變量部分,并對它們進行處理。本文將著重討論 `{*slug}` 和 `{**slug}` 的區(qū)別以及如何正確使用它們。

一句話區(qū)別解析

單星號 * 會將匹配的路徑中的斜杠 / 編碼為 %2F,雙星號 ** 會原封不動地保留斜杠 /

什么是路由模板?

ASP.NET Core 路由模板

在了解 `*` 和 `**` 的區(qū)別之前,讓我們先了解一下路由模板的基本概念。路由模板是一個用于匹配 URL 的模式字符串,其中包含靜態(tài)文本和可選的參數(shù)占位符。通過在模板中定義參數(shù)占位符,我們可以捕獲 URL 中的特定部分,并將其傳遞給處理程序進行處理。

路由模板以斜杠 (`/`) 開始,并且可以包含靜態(tài)文本、參數(shù)占位符和約束。參數(shù)占位符用花括號 (`{}`) 括起來,它們的名稱由字母、數(shù)字和下劃線組成。例如,`{controller}` 和 `{action}` 是兩個常見的參數(shù)占位符,用于匹配控制器和動作的名稱。

`*` 的使用

在路由模板中,`*` 用于捕獲剩余的 URL 片段作為單個變量。當路由器遇到 `*` 時,它會嘗試將之后的所有 URL 片段都捕獲到一個變量中,直到遇到另一個 `/` 或結尾。這是一個非常有用的功能,特別是當我們不確定要捕獲的 URL 片段數(shù)量時。

考慮以下示例路由模板:`/post/{id}/{*slug}`。這個模板定義了一個名為 `slug` 的變量,在第二個花括號后面的 `*` 表示任意數(shù)量的 URL 片段將被捕獲到 `slug` 變量中。例如,對于 URL `/post/123/my-blog-post/on-asp-net-core`,`id` 參數(shù)將匹配 `123`,而 `slug` 參數(shù)將匹配 `my-blog-post/on-asp-net-core`。

在處理程序或控制器動作中,我們可以通過將參數(shù)名稱與路由模板中的占位符相對應來接收捕獲的值。在上面的示例中,我們可以定義一個控制器動作如下:

public IActionResult Post(int id, string slug)
{
    // 處理代碼
}

```

通過這種方式,我們可以方便地使用 `slug` 變量來執(zhí)行進一步的邏輯操作,例如解析 URL 片段并加載相應的內容。

`**` 的使用

與 `*` 相比,`**` 提供了更大的靈活性,并且可以用于捕獲多個 URL 段或整個子目錄結構。當我們在路由模板中使用 `**` 時,它將匹配任意數(shù)量的路徑段,直到遇到結尾。這使得 `**` 特別適合處理深層次的 URL 路徑和子目錄結構。考慮以下示例路由模板:`/post/{id}/{**slug}`。這個模板定義了一個名為 `slug` 的變量,并使用 `**` 捕獲所有的 URL 路徑段,包括斜杠分隔符。

例如,對于 URL `/post/123/my-blog-post/on-asp-net-core`,`id` 參數(shù)將匹配 `123`,而 `slug` 參數(shù)將匹配 `my-blog-post/on-asp-net-core`。在這種情況下,`slug` 變量將捕獲整個子目錄結構,包括斜杠分隔符。

在處理程序或控制器動作中,我們可以通過將參數(shù)名稱與路由模板中的占位符相對應來接收捕獲的值。在上面的示例中,我們可以定義一個控制器動作如下:

public IActionResult Post(int id, string slug)
{
    // 處理代碼
}

`通過這種方式,我們可以方便地使用 `slug` 變量來執(zhí)行進一步的邏輯操作,例如解析 URL 路徑并加載相應的內容。

`*` 與 `**` 的區(qū)別

雖然 `*` 和 `**` 都用于捕獲變量部分,但它們之間存在一些關鍵區(qū)別:

  1. **數(shù)量的不同**:`*` 只能捕獲單個 URL 片段,而 `**` 可以捕獲多個 URL 片段或整個子目錄結構。

  2. **路徑分隔符的處理**:在使用 `*` 時,路徑分隔符(斜杠)將會被當作普通字符來處理,并包含在捕獲的變量值中。而在使用 `**` 時,路徑分隔符將會被視為分隔路徑段的標記,并不包含在捕獲的變量值中。

  3. **適用場景的不同**:`*` 是適用于捕獲不確定數(shù)量 URL 片段的情況,特別是當我們希望將這些片段作為單個變量進行處理時。而 `**` 則適用于需要處理深層次的 URL 路徑或子目錄結構的情況。

總結

`*` 用于捕獲不確定數(shù)量的 URL 片段作為單個變量,而 `**` 用于捕獲整個子目錄結構或多個 URL 段。對于不同的需求和場景,我們可以靈活地選擇合適的占位符來定義路由模板,并在處理程序中利用捕獲的變量進行后續(xù)操作。文章來源地址http://www.zghlxwxcb.cn/article/633.html

到此這篇關于ASP.NET Core 路由模板中 * 與 ** 的區(qū)別詳解 - 全面解析 {*slug} 與 {**slug}的文章就介紹到這了,更多相關內容可以在右上角搜索或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

原文地址:http://www.zghlxwxcb.cn/article/633.html

如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請聯(lián)系站長進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 全面的ASP.NET Core Blazor簡介和快速入門

    全面的ASP.NET Core Blazor簡介和快速入門

    ? 因為咱們的MongoDB入門到實戰(zhàn)教程Web端準備使用Blazor來作為前端展示UI,本篇文章主要是介紹Blazor是一個怎樣的Web UI框架,其優(yōu)勢和特點在哪?并帶你快速入門上手ASP.NET Core Blazor(當然這個前提是你要有一定的C#編程基礎的情況,假如你完全沒有接觸過C#的話建議你先從基本語

    2024年02月19日
    瀏覽(23)
  • ASP.NET和ASP.NET Core的區(qū)別

    ASP.NET和ASP.NET Core是兩個不同的Web應用程序框架,它們都是由Microsoft開發(fā)的。ASP.NET是Microsoft推出的第一個Web應用程序框架,而ASP.NET Core是其最新版本。本文將介紹ASP.NET和ASP.NET Core的簡介和區(qū)別。 ASP.NET的簡介 ASP.NET是一個基于.NET框架的Web應用程序框架,它是Microsoft推出的第一

    2024年02月16日
    瀏覽(93)
  • ASP.NET Core中路由規(guī)則匹配

    RESTful約束,如果在一個控制器里面有多個Get、Post...的操作 1、在一個控制器里面可以定義多個API方法 2、通過路由規(guī)則來區(qū)分 /// summary /// 獲取用戶信息 /// /summary /// param name=\\\"user\\\"/param /// returns/returns [HttpGet] public User GetUser() { ? ? //... } GetUser()對應的Request URL:https://localhost:71

    2024年02月13日
    瀏覽(88)
  • 【ASP.NET Core 基礎知識】--路由和請求處理--路由概念(一)

    在Web應用中,路由是一個至關重要的概念,它負責將用戶的請求映射到相應的處理程序,以確保正確的頁面或資源被呈現(xiàn)給用戶。通過將用戶請求與適當?shù)奶幚沓绦蜿P聯(lián)起來,使得應用能夠以有序和可維護的方式響應用戶的操作。 一、ASP.NET Core路由基礎 1.1 路由的定義和作用

    2024年01月19日
    瀏覽(96)
  • 【ASP.NET Core 基礎知識】--路由和請求處理--路由概念(二)

    一、路由參數(shù)傳遞方式 1.1 查詢字符串參數(shù) 在路由中,查詢字符串參數(shù)是一種常見的方式傳遞信息。這種方式通過URL中的查詢字符串(?key1=value1key2=value2)將參數(shù)附加到請求中。在ASP.NET Core中,可以通過以下方式在控制器動作方法中接收查詢字符串參數(shù): 在上述例子中,查詢

    2024年01月21日
    瀏覽(365)
  • ASP.NET Core MVC 從入門到精通之路由

    ASP.NET Core MVC 從入門到精通之路由

    隨著技術的發(fā)展,ASP.NET Core MVC也推出了好長時間,經過不斷的版本更新迭代,已經越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關內容,適用于初學者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。?經過前幾篇文章的講解,初步

    2023年04月14日
    瀏覽(39)
  • asp.net core框架搭建1-搭建webapi,對數(shù)據(jù)增刪改查接口模板(附源碼)

    asp.net core框架搭建1-搭建webapi,對數(shù)據(jù)增刪改查接口模板(附源碼)

    作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/131458922 asp.net core 框架搭建2-搭建webapi ,本文章介紹asp.net core webapi框架搭建,然后開發(fā)增刪改查和工具接口,將一步步帶著大家,實現(xiàn)目標。所有操作過程將展現(xiàn)在本篇文章,下面咋們一起來實現(xiàn)它吧。 asp.ne

    2024年02月13日
    瀏覽(19)
  • ASP.NET Core Web API入門之二:Swagger詳細使用&路由設置

    ASP.NET Core Web API入門之二:Swagger詳細使用&路由設置

    本篇文章是Swagger的詳細使用,續(xù)上篇ASP.NET Core Web API入門之一:創(chuàng)建新項目。 Swagger 是一個規(guī)范和完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務的接口文檔。 根據(jù)在代碼中使用自定義的注解來生成接口文檔,這個在前后端分離的項目中很重要。這樣做的

    2024年02月15日
    瀏覽(27)
  • 2.1 .net 8 ASP.NET Core Web API - Controller詳解

    2.1 .net 8 ASP.NET Core Web API - Controller詳解

    書接上回,上節(jié)我們留了幾個問題,即: 1、接口Hello的名字究竟怎么來的? 2、我們如果想把接口改成其他的名稱,應該怎么做? 3、我們繼承ControllerBase,以及[Route(“[controller]”)]屬性,又是分別起到什么作用? 需要解決以上幾個問題,我們就要繼續(xù)深入研究Controller相關的

    2024年02月20日
    瀏覽(18)
  • 【一文詳解】知識分享:(ASP.Net Core基礎學習及快速入門)

    【一文詳解】知識分享:(ASP.Net Core基礎學習及快速入門)

    .Net .NET是微軟的一個開發(fā)平臺,這個平臺的一大特點就是跨語言性,不管是什么語言,c、c++、c#、F#、J#、vb等語言都可以用這個平臺合作開發(fā); .NET,它是微軟創(chuàng)建的一個用于構建多種不同類型的應用程序的開發(fā)人員平臺。 .NET 是一個廣泛的術語,用于描述整個 Microsoft 的軟件

    2024年02月01日
    瀏覽(151)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包