最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Blazor路由與頁面導(dǎo)航開發(fā)介紹

 更新時(shí)間:2022年01月30日 10:10:50   作者:痕跡g  
這篇文章介紹了Blazor路由與頁面導(dǎo)航開發(fā),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在 Blazor 中,應(yīng)用中的每個(gè)頁面都是一個(gè)組件,通常在 razor 文件中定義,具有一個(gè)或多個(gè)指定路由。 路由大多數(shù)發(fā)生在客戶端,而不涉及特定的服務(wù)器請(qǐng)求。 瀏覽器首先發(fā)出對(duì)應(yīng)用程序根地址的請(qǐng)求。 然后, Blazor 應(yīng)用中的根 Router 組件會(huì)處理截獲導(dǎo)航請(qǐng)求,并將它們處理到正確的組件。

Blazor 中的路由由 Router 組件處理。 Router 組件通常在應(yīng)用程序的根組件( App.Razor )中使用。

Router

下面是VisualStudio創(chuàng)建的默認(rèn)App.Razor的模板設(shè)置

    <Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
     </Router>

Router 組件將發(fā)現(xiàn)指定 AppAssembly 中和指定 AdditionalAssemblies 中的可路由組件。 當(dāng)瀏覽器導(dǎo)航時(shí),Router 會(huì)截獲導(dǎo)航,并使用提取的 RouteData 呈現(xiàn)其 Found 參數(shù)的內(nèi)容(如果路由與地址匹配),否則 Router 將呈現(xiàn)其 NotFound 參數(shù)。
RouteView 組件會(huì)處理 RouteData 指定的匹配組件(如果有)。 如果匹配的組件沒有布局,則使用可選的指定DefaultLayout 。

路由模板

在聲明的Razor組件當(dāng)中, 可以在組件當(dāng)中定義一個(gè)或多個(gè)@Page "/xxx" , 通過該聲明表示該組件可用于Router的導(dǎo)航, 否則只充當(dāng)單個(gè)應(yīng)用組件。

原因: Blazor 會(huì)編譯帶有 @page指令的.razor文件,將為生成的類提供指定路由模板的 RouteAttribute, 當(dāng)瀏覽器發(fā)出對(duì)應(yīng)用程序根地址的請(qǐng)求時(shí), Blazor 應(yīng)用中的根 Router 組件會(huì)處理截獲導(dǎo)航請(qǐng)求,并將它們處理到正確的組件, 如果能夠找到組件,將會(huì)為其呈現(xiàn)在指定的 Layout 當(dāng)中, 否則呈現(xiàn) NotFound 的自定義內(nèi)容。 (關(guān)于Router組件的介紹)

添加@page "xxx" 參數(shù)是必需的, 如果你需要用于導(dǎo)航, 與ASP.NET Web窗體不同,指向Blazor組件的路由不會(huì)從其文件位置推斷出來(盡管這可能是將來添加的功能)。

@page "/test/{text}"
@page "/test"

<h6>Hello</h6>
<h3>@Text</h3>

@code {
    [Parameter]
    public string Text { get; set; }
}

路由參數(shù)

在上面的代碼中, @page "/test/{text}" , 尖括號(hào)的部分則代表路由參數(shù), 代表該頁面在導(dǎo)航時(shí)可以接受一個(gè)參數(shù)。
注意:當(dāng)聲明路由參數(shù)的時(shí)候,由于需要該參數(shù), 則需要為該參數(shù)聲明一個(gè)組件參數(shù) (不區(qū)分大小寫):

    @page "/NodePage/test/{Text}"

@code {
    [Parameter]
    public string TexT { get; set; }
}

路由約束

可以為路由參數(shù)設(shè)定路由約束, 可以用于限定參數(shù)的類型, 使用方式:

    @page "/Users/{Id:int}"

<h1>The user Id is @Id!</h1>

@code {
    [Parameter]
    public int Id { get; set; }
}

可用于約束的列表:

導(dǎo)航組件

NavLink 組件

創(chuàng)建導(dǎo)航鏈接時(shí),請(qǐng)使用 NavLink 組件代替 HTML 超鏈接元素 ()。 NavLink 組件的行為方式類似于 元素,但它根據(jù)其 active 是否與當(dāng)前 URL 匹配來切換 href CSS 類。

以下 NavMenu 組件創(chuàng)建啟動(dòng)導(dǎo)航欄,該導(dǎo)航欄演示如何使用 NavLink 組件:

    <div class="@NavMenuCssClass" @onclick="@ToggleNavMenu">
    <ul class="nav flex-column">
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="" Match=" rel="external nofollow" NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </li>
        <li class="nav-item px-3">
            <NavLink class="nav-link" href="MyComponent" rel="external nofollow"  Match="NavLinkMatch.Prefix">
                <span class="oi oi-plus" aria-hidden="true"></span> My Component
            </NavLink>
        </li>
    </ul>
</div>
  • NavLinkMatch.All – NavLink 在與當(dāng)前整個(gè) URL 匹配的情況下處于活動(dòng)狀態(tài)。
  • NavLinkMatch.Prefix(默認(rèn))– NavLink 在與當(dāng)前 URL 的任何前綴匹配的情況下處于活動(dòng)狀態(tài)。

NavigationManager

NavigationManager 服務(wù),可用于:

  • 獲取當(dāng)前瀏覽器地址
  • 獲取基址
  • 觸發(fā)器導(dǎo)航
  • 當(dāng)?shù)刂犯臅r(shí)收到通知

在C#代碼中, 可以使用NavigationManager進(jìn)行頁面導(dǎo)航,如下所示:

  • 1.在Razor中注入: @inject NavigationManager NavigationManager
  • 2.創(chuàng)建方法,使用NavigateTo 傳遞URL
    @inject NavigationManager NavigationManager
<button @onclick="NacigationToPage">NavigationTo</button>
@code{
    public void NacigationToPage()
    {
        NavigationManager.NavigateTo("/test/999");
    }
}

test.razor 頁面引用@page:

    @page "test/{text}"

//...

關(guān)于NavigationManager中的事件和方法說明:

 到此這篇關(guān)于Blazor路由與頁面導(dǎo)航開發(fā)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ASP.NET 中的Application詳解

    ASP.NET 中的Application詳解

    Application對(duì)象是HttpApplicationState類的一個(gè)實(shí)例,Application狀態(tài)是整個(gè)應(yīng)用程序全局的。本文主要詳細(xì)介紹Application對(duì)象的用法。
    2016-04-04
  • .net中的Span<T>類和Memory<T>類介紹

    .net中的Span<T>類和Memory<T>類介紹

    這篇文章介紹了.net中的Span<T>類和Memory<T>類,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • ASP.NET中Literal與Label控件的區(qū)別

    ASP.NET中Literal與Label控件的區(qū)別

    相信學(xué)ASP.NET的朋友們都會(huì)遇到Literal和Label到底該用那個(gè)的問題,Literal和Label到底有什么不同,其實(shí)簡單的講就是Literal不會(huì)產(chǎn)生HTML代碼,而Label會(huì)產(chǎn)生一個(gè)span標(biāo)記,下面為大家詳細(xì)講解一下。
    2016-04-04
  • ASP.NET 中ImageMap控件的用法

    ASP.NET 中ImageMap控件的用法

    本文主要介紹ImageMap控件的使用方法,并做了簡單的代碼演示,希望能幫到大家。
    2016-04-04
  • WPF框架之Prism介紹

    WPF框架之Prism介紹

    這篇文章介紹了WPF的Prism框架,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • 通過VS中的數(shù)據(jù)源選擇對(duì)話框簡單實(shí)現(xiàn)數(shù)據(jù)庫連接配置

    通過VS中的數(shù)據(jù)源選擇對(duì)話框簡單實(shí)現(xiàn)數(shù)據(jù)庫連接配置

    通過VS中的數(shù)據(jù)源選擇對(duì)話框簡單實(shí)現(xiàn)數(shù)據(jù)庫連接配置...
    2007-02-02
  • ASP.NET Core服務(wù)生命周期

    ASP.NET Core服務(wù)生命周期

    這篇文章介紹了ASP.NET Core中的服務(wù)生命周期,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 一步步打造漂亮的新聞列表(無刷新分頁、內(nèi)容預(yù)覽)第二步

    一步步打造漂亮的新聞列表(無刷新分頁、內(nèi)容預(yù)覽)第二步

    由于我們僅僅是項(xiàng)目中的一個(gè)小部分,但也差不多按照以上的順序進(jìn)行開發(fā),這是一個(gè)良好的習(xí)慣。我們將概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)放在一起。
    2010-07-07
  • Blazor數(shù)據(jù)綁定用法

    Blazor數(shù)據(jù)綁定用法

    這篇文章介紹了Blazor數(shù)據(jù)綁定的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • .Net創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式(Abstract?Factory)

    .Net創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式(Abstract?Factory)

    這篇文章介紹了.Net設(shè)計(jì)模式之抽象工廠模式(Abstract?Factory),文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論

甘肃省| 嘉黎县| 珠海市| 牟定县| 海南省| 岳阳县| 漳浦县| 嘉定区| 晋中市| 手游| 焦作市| 南靖县| 正安县| 雅江县| 区。| 青川县| 通城县| 利川市| 唐山市| 双桥区| 九龙坡区| 濮阳县| 藁城市| 大冶市| 古蔺县| 苍南县| 金平| 江口县| 太原市| 陆良县| 江华| 永川市| 丁青县| 喀喇沁旗| 安化县| 柳江县| 定州市| 云阳县| 乌兰察布市| 山阴县| 星座|