Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Notes
Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 9 de cet article.
Avertissement
Cette version d’ASP.NET Core n’est plus prise en charge. Pour plus d’informations, consultez la stratégie de support .NET et .NET Core. Pour la version actuelle, consultez la version .NET 9 de cet article.
Important
Ces informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Pour la version actuelle, consultez la version .NET 9 de cet article.
Cet article explique comment gérer le routage et la navigation des requêtes dans les applications Blazor Hybrid.
Comportement de routage des requêtes d’URI par défaut :
target="_blank"
, le lien est considéré comme externe.BlazorWebView
par l’application./file.x
, /Maryia.Melnyk
, /image.gif
) mais qui ne pointent pas vers un contenu statique : Pour modifier le comportement de gestion des liens pour les liens qui ne définissent pas target="_blank"
, inscrivez l’événement UrlLoading
et définissez la propriété UrlLoadingEventArgs.UrlLoadingStrategy. L’énumération UrlLoadingStrategy permet de définir le comportement de gestion des liens sur l’une des valeurs suivantes :
BlazorWebView
. Il s’agit de la stratégie par défaut pour les URL avec un hôte correspondant à l’origine de l’application. N’utilisez pas cette stratégie pour les liens externes, sauf si vous pouvez vous assurer que l’URI de destination est entièrement fiable.La propriété UrlLoadingEventArgs.Url est utilisée pour obtenir ou définir dynamiquement l’URL.
Avertissement
Les liens externes sont ouverts dans une application déterminée par l’appareil. L’ouverture de liens externes dans un BlazorWebView
peut introduire des failles de sécurité et ne doit pas être activée, sauf si vous pouvez garantir que les liens externes sont entièrement fiables.
Documentation sur l’API :
L’espace de noms Microsoft.AspNetCore.Components.WebView est requis pour les exemples suivants :
using Microsoft.AspNetCore.Components.WebView;
Ajoutez le gestionnaire d’événements suivant au constructeur du Page
où le BlazorWebView
est créé, qui se trouve MainPage.xaml.cs
dans une application créée à partir du modèle de projet .NET MAUI.
blazorWebView.UrlLoading +=
(sender, urlLoadingEventArgs) =>
{
if (urlLoadingEventArgs.Url.Host != "0.0.0.0")
{
urlLoadingEventArgs.UrlLoadingStrategy =
UrlLoadingStrategy.OpenInWebView;
}
};
Ajoutez l’attribut UrlLoading="Handle_UrlLoading"
au contrôle BlazorWebView
dans le fichier .xaml
:
<blazor:BlazorWebView HostPage="wwwroot\index.html"
Services="{StaticResource services}"
x:Name="blazorWebView"
UrlLoading="Handle_UrlLoading">
Ajoutez le gestionnaire d’événements dans le fichier .xaml.cs
:
private void Handle_UrlLoading(object sender,
UrlLoadingEventArgs urlLoadingEventArgs)
{
if (urlLoadingEventArgs.Url.Host != "0.0.0.0")
{
urlLoadingEventArgs.UrlLoadingStrategy =
UrlLoadingStrategy.OpenInWebView;
}
}
Dans le constructeur du formulaire contenant le contrôle BlazorWebView
, ajoutez l’inscription d’événement suivante :
blazorWebView.UrlLoading +=
(sender, urlLoadingEventArgs) =>
{
if (urlLoadingEventArgs.Url.Host != "0.0.0.0")
{
urlLoadingEventArgs.UrlLoadingStrategy =
UrlLoadingStrategy.OpenInWebView;
}
};
Utilisez la propriété BlazorWebView.StartPath
pour obtenir ou définir le chemin de la navigation initiale dans le contexte de navigation Blazor quand le composant Razor est chargé. Le chemin de début par défaut est le chemin d’URL racine relatif (/
).
Dans le balisage XAML MainPage
(MainPage.xaml
), spécifiez le chemin de début. L’exemple suivant définit le chemin sur une page d’accueil à l’adresse /welcome
:
<BlazorWebView ... StartPath="/welcome" ...>
...
<BlazorWebView>
Vous pouvez également définir le chemin d’accès de démarrage dans le constructeur MainPage
(MainPage.xaml.cs
) :
blazorWebView.StartPath = "/welcome";
Dans le concepteur MainWindow
(MainWindow.xaml
), spécifiez le chemin de début. L’exemple suivant définit le chemin sur une page d’accueil à l’adresse /welcome
:
<blazor:BlazorWebView ... StartPath="/welcome" ...>
...
</blazor:BlazorWebView>
Dans le constructeur Form1
du fichier Form1.cs
, spécifiez le chemin de début. L’exemple suivant définit le chemin sur une page d’accueil à l’adresse /welcome
:
blazorWebView1.StartPath = "/welcome";
Cette section explique comment naviguer entre les pages de contenu .NET MAUI et les composants Razor.
Le modèle de projet hybride .NET MAUIBlazor n’est pas une application basée sur un interpréteur de commandes. Par conséquent, la navigation basée sur l’URI pour les applications basées sur un interpréteur de commandes n’est pas adaptée à un projet basé sur le modèle de projet. Les exemples de cette section utilisent un NavigationPage pour effectuer une navigation sans modèle ou modale.
Dans l’exemple suivant :
MauiBlazor
, ce qui correspond au nom de projet suggéré dans le tutorielGénérer une .NET MAUIBlazor Hybrid application.Views
.Dans App.xaml.cs
, créez le MainPage
en tant que NavigationPage en effectuant la modification suivante :
- MainPage = new MainPage();
+ MainPage = new NavigationPage(new MainPage());
Views/NavigationExample.xaml
:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:MauiBlazor"
x:Class="MauiBlazor.Views.NavigationExample"
Title="Navigation Example"
BackgroundColor="{DynamicResource PageBackgroundColor}">
<StackLayout>
<Label Text="Navigation Example"
VerticalOptions="Center"
HorizontalOptions="Center"
FontSize="24" />
<Button x:Name="CloseButton"
Clicked="CloseButton_Clicked"
Text="Close" />
</StackLayout>
</ContentPage>
Dans le fichier de code NavigationExample
suivant, le gestionnaire d’événements CloseButton_Clicked
du bouton de fermeture appelle PopAsync pour désactiver ContentPage de la pile de navigation.
Views/NavigationExample.xaml.cs
:
namespace MauiBlazor.Views;
public partial class NavigationExample : ContentPage
{
public NavigationExample()
{
InitializeComponent();
}
private async void CloseButton_Clicked(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}
Dans un composant Razor :
MauiBlazor.Views
.button
avec un @onclick
gestionnaire d’événements pour ouvrir la page de contenu. La méthode du gestionnaire d’événements est nommée OpenPage
.NavigationExample
, sur la pile de navigation.L’exemple suivant est basé sur le composant Index
dans le modèle de projet .NET MAUIBlazor.
Pages/Index.razor
:
@page "/"
@using MauiBlazor.Views
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<button class="btn btn-primary" @onclick="OpenPage">Open</button>
@code {
private async void OpenPage()
{
await App.Current.MainPage.Navigation.PushAsync(new NavigationExample());
}
}
Pour modifier l’exemple précédent en navigation modale :
Dans la méthode CloseButton_Clicked
(Views/NavigationExample.xaml.cs
), remplacez PopAsync par PopModalAsync :
- await Navigation.PopAsync();
+ await Navigation.PopModalAsync();
Dans la méthode OpenPage
(Pages/Index.razor
), remplacez PushAsync par PushModalAsync :
- await App.Current.MainPage.Navigation.PushAsync(new NavigationExample());
+ await App.Current.MainPage.Navigation.PushModalAsync(new NavigationExample());
Pour plus d’informations, consultez les ressources suivantes :
Il est souvent souhaitable de connecter un site web et une application mobile afin que des liens sur un site web lancent l’application mobile et y affichent du contenu. Le lien d’application, également appelée lien profond, est une technique qui permet à un appareil mobile de répondre à un URI et de lancer du contenu dans une application mobile représentée par l’URI.
Pour plus d’informations, consultez les articles suivants dans la documentation .NET MAUI :
Commentaires sur ASP.NET Core
ASP.NET Core est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté Microsoft Fabric, Power BI, SQL et AI ultime. 31 mars au 2 avril 2025.
Inscrivez-vous aujourd’huiEntrainement
Module
Utiliser les pages, le routage et les dispositions pour améliorer la navigation Blazor - Training
Découvrez comment optimiser la navigation de votre application, utiliser des paramètres de l’URL et créer des dispositions réutilisables dans une application Web Blazor.