Integrare componenti ASP.NET Core Razor in app ASP.NET Core
Questo articolo illustra gli Razor scenari di integrazione dei componenti per ASP.NET app Core.
Razor integrazione dei componenti
Razor i componenti possono essere integrati in Razor Pages, MVC e altri tipi di app ASP.NET Core. Razor i componenti possono anche essere integrati in qualsiasi app Web, incluse le app non basate su ASP.NET Core, come elementi HTML personalizzati.
Usare le linee guida nelle sezioni seguenti a seconda dei requisiti dell'app:
- Per integrare componenti che non sono direttamente instradabili dalle richieste degli utenti, seguire le indicazioni nella sezione Usare componenti non instradabili nelle pagine o nelle visualizzazioni . Seguire queste indicazioni quando l'app deve incorporare solo i componenti in pagine e visualizzazioni esistenti con l'helper tag del componente.
- Per integrare i componenti con supporto completo Blazor , seguire le indicazioni nella sezione Aggiungere Blazor supporto a un'app ASP.NET Core.
Usare componenti non instradabili in pagine o visualizzazioni
Usare le indicazioni seguenti per integrare Razor componenti in pagine o visualizzazioni di un'app Pages o MVC esistente Razor con l'helper tag del componente.
Nota
Se l'app richiede componenti instradabili direttamente (non incorporati in pagine o visualizzazioni), ignorare questa sezione e usare le indicazioni nella sezione Aggiungi Blazor supporto a un'app ASP.NET Core.
Quando viene usato il prerendering del server e viene eseguito il rendering della pagina o della visualizzazione:
- Il componente viene prerenderato con la pagina o la visualizzazione.
- Lo stato del componente iniziale usato per la pre-esecuzione del pre-riavvio viene perso.
- Quando viene stabilita la connessione, viene creato un nuovo stato del SignalR componente.
Per altre informazioni sulle modalità di rendering, incluso il rendering di componenti statici non interattivi, vedere Component Tag Helper in ASP.NET Core. Per salvare lo stato dei componenti prerenderati Razor , vedere Persist Component State Tag Helper in ASP.NET Core.
Aggiungere una Components
cartella alla cartella radice del progetto.
Aggiungere un file imports alla Components
cartella con il contenuto seguente. Modificare il {APP NAMESPACE}
segnaposto nello spazio dei nomi del progetto.
Components/_Imports.razor
:
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using {APP NAMESPACE}
@using {APP NAMESPACE}.Components
Nel file di layout del progetto (Pages/Shared/_Layout.cshtml
nelle Razor app Pages o Views/Shared/_Layout.cshtml
nelle app MVC):
Aggiungere il tag e l'helper tag del componente seguenti
<base>
per un HeadOutlet componente al<head>
markup:<base href="~/" /> <component type="typeof(Microsoft.AspNetCore.Components.Web.HeadOutlet)" render-mode="ServerPrerendered" />
Il
href
valore (percorso di base dell'app) nell'esempio precedente presuppone che l'app risieda nel percorso URL radice (/
). Se l'app è un'applicazione secondaria, seguire le indicazioni nella sezione Percorso di base dell'app dell'articolo Host e distribuire ASP.NET Core Blazor .Il componente viene usato per eseguire il HeadOutlet rendering del contenuto head (
<head>
) per i titoli di pagina (PageTitle componente) e altri elementi head (HeadContent componente) impostati dai Razor componenti. Per altre informazioni, vedere Controllare il contenuto head nelle app ASP.NET CoreBlazor.Aggiungere un
<script>
tag per loblazor.web.js
script immediatamente prima dellaScripts
sezione render (@await RenderSectionAsync(...)
):<script src="_framework/blazor.web.js"></script>
Il Blazor framework aggiunge automaticamente lo
blazor.web.js
script all'app.
Nota
In genere, il layout viene caricato tramite un _ViewStart.cshtml
file.
Aggiungere un componente non operativo (no-op) App
al progetto.
Components/App.razor
:
@* No-op App component *@
Dove vengono registrati i servizi, aggiungere servizi per Razor componenti e servizi per supportare il rendering dei componenti Interactive Server.
Nella parte superiore del Program
file aggiungere un'istruzione using
all'inizio del file per i componenti del progetto:
using {APP NAMESPACE}.Components;
Nella riga precedente modificare il {APP NAMESPACE}
segnaposto nello spazio dei nomi dell'app. Ad esempio:
using BlazorSample.Components;
Nel file prima della Program
riga che compila l'app (builder.Build()
):
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
Per altre informazioni sull'aggiunta del supporto per i componenti Interactive Server e WebAssembly, vedere ASP.NET modalità di rendering coreBlazor.
Program
Nel file subito dopo la chiamata per eseguire il mapping Razor di Pages (MapRazorPages) in un'app Razor Pages o per eseguire il mapping della route controller predefinita (MapControllerRoute) in un'app MVC, chiamare MapRazorComponents per individuare i componenti disponibili e specificare il componente radice dell'app (il primo componente caricato). Per impostazione predefinita, il componente radice dell'app è il App
componente (App.razor
). Concatenare una chiamata a AddInteractiveServerRenderMode per configurare il rendering lato server interattivo (SSR interattivo) per l'app:
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
Nota
Se l'app non è già stata aggiornata per includere il middleware antiforgery, aggiungere la riga seguente dopo UseAuthorization la chiamata:
app.UseAntiforgery();
Integrare i componenti in qualsiasi pagina o visualizzazione. Ad esempio, aggiungere un EmbeddedCounter
componente alla cartella del Components
progetto.
Components/EmbeddedCounter.razor
:
<h1>Embedded Counter</h1>
<p>Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
Razor Pagine:
Nella pagina del progetto di Index
un'app Razor Pages aggiungere lo EmbeddedCounter
spazio dei nomi del componente e incorporare il componente nella pagina. Quando la Index
pagina viene caricata, il EmbeddedCounter
componente viene prerisorso nella pagina. Nell'esempio seguente sostituire il {APP NAMESPACE}
segnaposto con lo spazio dei nomi del progetto.
Pages/Index.cshtml
:
@page
@using {APP NAMESPACE}.Components
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<component type="typeof(EmbeddedCounter)" render-mode="ServerPrerendered" />
MVC:
Nella visualizzazione del progetto di Index
un'app MVC aggiungere lo EmbeddedCounter
spazio dei nomi del componente e incorporare il componente nella visualizzazione. Quando la Index
visualizzazione viene caricata, il EmbeddedCounter
componente viene prerisorso nella pagina. Nell'esempio seguente sostituire il {APP NAMESPACE}
segnaposto con lo spazio dei nomi del progetto.
Views/Home/Index.cshtml
:
@using {APP NAMESPACE}.Components
@{
ViewData["Title"] = "Home Page";
}
<component type="typeof(EmbeddedCounter)" render-mode="ServerPrerendered" />
Aggiungere Blazor il supporto a un'app ASP.NET Core
Questa sezione illustra l'aggiunta Blazor del supporto a un'app ASP.NET Core:
- Aggiungere il rendering statico lato server (SSR statico)
- Abilitare il rendering lato server interattivo (SSR interattivo)
- Abilitare il rendering automatico interattivo (Auto) o il rendering lato client (CSR)
Nota
Per gli esempi in questa sezione, il nome e lo spazio dei nomi dell'app di esempio sono BlazorSample
.
Aggiungere il rendering statico lato server (SSR statico)
Aggiungere una Components
cartella all'app.
Aggiungere il file seguente _Imports
per gli spazi dei nomi usati dai Razor componenti.
Components/_Imports.razor
:
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using static Microsoft.AspNetCore.Components.Web.RenderMode
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using {APP NAMESPACE}
@using {APP NAMESPACE}.Components
Modificare il segnaposto dello spazio dei nomi ({APP NAMESPACE}
) nello spazio dei nomi dell'app. Ad esempio:
@using BlazorSample
@using BlazorSample.Components
Aggiungere il Blazor router (<Router>
, Router) all'app in un Routes
componente, che viene inserito nella cartella dell'app Components
.
Components/Routes.razor
:
<Router AppAssembly="typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="routeData" />
<FocusOnNavigate RouteData="routeData" Selector="h1" />
</Found>
</Router>
Aggiungere un App
componente all'app, che funge da componente radice, ovvero il primo componente caricato dall'app.
Components/App.razor
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link rel="stylesheet" href="@Assets["{ASSEMBLY NAME}.styles.css"]" />
<HeadOutlet />
</head>
<body>
<Routes />
<script src="_framework/blazor.web.js"></script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link rel="stylesheet" href="{ASSEMBLY NAME}.styles.css" />
<HeadOutlet />
</head>
<body>
<Routes />
<script src="_framework/blazor.web.js"></script>
</body>
</html>
Il {ASSEMBLY NAME}
segnaposto è il nome dell'assembly dell'app. Ad esempio, un progetto con un nome di assembly di ContosoApp
usa il nome del file del ContosoApp.styles.css
foglio di stile.
Aggiungere una Pages
cartella alla Components
cartella per contenere componenti instradabili Razor .
Aggiungere il componente seguente Welcome
per illustrare ssr statico.
Components/Pages/Welcome.razor
:
@page "/welcome"
<PageTitle>Welcome!</PageTitle>
<h1>Welcome to Blazor!</h1>
<p>@message</p>
@code {
private string message =
"Hello from a Razor component and welcome to Blazor!";
}
Nel file del Program
progetto ASP.NET Core:
Aggiungere un'istruzione
using
all'inizio del file per i componenti del progetto:using {APP NAMESPACE}.Components;
Nella riga precedente modificare il
{APP NAMESPACE}
segnaposto nello spazio dei nomi dell'app. Ad esempio:using BlazorSample.Components;
Aggiungere Razor servizi componenti (AddRazorComponents), che aggiunge automaticamente anche servizi antiforgery (AddAntiforgery). Aggiungere la riga seguente prima della riga che chiama
builder.Build()
:builder.Services.AddRazorComponents();
Aggiungere il middleware antiforgery alla pipeline di elaborazione delle richieste con UseAntiforgery. UseAntiforgery viene chiamato dopo la chiamata a UseRouting. Se sono presenti chiamate a UseRouting e UseEndpoints, la chiamata a UseAntiforgery deve passare tra di esse. Una chiamata a UseAntiforgery deve essere effettuata dopo le chiamate a UseAuthentication e UseAuthorization.
app.UseAntiforgery();
Aggiungere MapRazorComponents alla pipeline di elaborazione delle richieste dell'app con il
App
componente (App.razor
) specificato come componente radice predefinito (il primo componente caricato). Inserire il codice seguente prima della riga che chiamaapp.Run
:app.MapRazorComponents<App>();
Quando l'app viene eseguita, si accede al Welcome
componente all'endpoint /welcome
.
Abilitare il rendering lato server interattivo (SSR interattivo)
Seguire le indicazioni nella sezione Aggiungere rendering statico lato server (SSR statico).
Nel file dell'app Program
aggiungere una chiamata a AddInteractiveServerComponents dove Razor vengono aggiunti i servizi componenti con AddRazorComponents:
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
Aggiungere una chiamata a AddInteractiveServerRenderMode dove Razor vengono mappati i componenti con MapRazorComponents:
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
Aggiungere il componente seguente Counter
all'app che adotta il rendering lato server interattivo (SSR interattivo).
Components/Pages/Counter.razor
:
@page "/counter"
@rendermode InteractiveServer
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
Quando l'app viene eseguita, si accede al Counter
componente all'indirizzo /counter
.
Abilitare il rendering automatico interattivo (Auto) o il rendering lato client (CSR)
Seguire le indicazioni nella sezione Aggiungere rendering statico lato server (SSR statico).
I componenti che usano la modalità di rendering automatico interattivo usano inizialmente SSR interattivo. Il runtime .NET e il bundle dell'app vengono scaricati nel client in background e memorizzati nella cache in modo che possano essere usati nelle visite future. I componenti che usano la modalità di rendering Interactive WebAssembly vengono visualizzati in modo interattivo solo sul client dopo il download del Blazor bundle e il Blazor runtime viene attivato. Tenere presente che quando si usano le modalità di rendering Interactive Auto o Interactive WebAssembly, il codice del componente scaricato nel client non è privato. Per altre informazioni, vedere ASP.NET Modalità di rendering coreBlazor.
Dopo aver deciso quale modalità di rendering adottare:
- Se si prevede di adottare la modalità di rendering automatico interattivo, seguire le indicazioni nella sezione Abilitare il rendering lato server interattivo (SSR interattivo).
- Se si prevede di adottare solo il rendering Interactive WebAssembly, continuare senza aggiungere SSR interattivo.
Aggiungere un riferimento al pacchetto NuGet all'app Microsoft.AspNetCore.Components.WebAssembly.Server
.
Nota
Per indicazioni sull'aggiunta di pacchetti alle app .NET, vedere gli articoli sotto Installare e gestire pacchetti in Flusso di lavoro dell'utilizzo di pacchetti (documentazione di NuGet). Confermare le versioni corrette del pacchetto all'indirizzo NuGet.org.
Creare un donatore Blazor Web App per fornire risorse all'app. Seguire le indicazioni riportate nell'articolo Strumenti per ASP.NET Core Blazor , selezionando il supporto per le funzionalità del modello seguenti durante la generazione di Blazor Web App.
Per il nome dell'app, usa lo stesso nome dell'app ASP.NET Core, che comporta la corrispondenza del markup del nome dell'app nei componenti e negli spazi dei nomi corrispondenti nel codice. L'uso dello stesso nome/spazio dei nomi non è strettamente obbligatorio, perché gli spazi dei nomi possono essere modificati dopo che gli asset vengono spostati dall'app donatore all'app ASP.NET Core. Tuttavia, il tempo viene salvato associando gli spazi dei nomi all'inizio.
Visual Studio:
- In Modalità di rendering interattivo selezionare Auto (Server e WebAssembly).
- Impostare la posizione interattività su Per pagina/componente.
- Deselezionare la casella di controllo Includi pagine di esempio.
Interfaccia della riga di comando di .NET:
- Usare l'opzione
-int Auto
. - Non usare l'opzione
-ai|--all-interactive
. - Passare l'opzione
-e|--empty
.
Dal donatore copiare Blazor Web Appl'intero .Client
progetto nella cartella della soluzione dell'app ASP.NET Core.
Importante
Non copiare la .Client
cartella nella cartella del progetto ASP.NET Core. L'approccio migliore per organizzare le soluzioni .NET consiste nell'inserire ogni progetto della soluzione nella propria cartella all'interno di una cartella di soluzione di primo livello. Se una cartella della soluzione sopra la cartella del progetto ASP.NET Core non esiste, crearne una. Copiare quindi la .Client
cartella del progetto dal donatore Blazor Web App nella cartella della soluzione. La struttura di cartelle del progetto finale deve avere il layout seguente:
BlazorSampleSolution
(cartella della soluzione di primo livello)BlazorSample
(progetto core ASP.NET originale)BlazorSample.Client
(.Client
cartella di progetto del donatore Blazor Web App)
Per il file di soluzione ASP.NET Core, è possibile lasciarlo nella cartella del progetto ASP.NET Core. In alternativa, è possibile spostare il file della soluzione o crearne uno nuovo nella cartella della soluzione di primo livello, purché i riferimenti al progetto puntino correttamente ai file di progetto (.csproj
) dei due progetti nella cartella della soluzione.
Se il donatore è stato denominato quando è stato creato il progetto di donatore Blazor Web App uguale all'app core ASP.NET, gli spazi dei nomi usati dagli asset donati corrispondono a quelli nell'app ASP.NET Core. Non è necessario eseguire ulteriori passaggi per trovare le corrispondenze con gli spazi dei nomi. Se è stato usato uno spazio dei nomi diverso durante la creazione del progetto di donatore Blazor Web App , è necessario modificare gli spazi dei nomi tra gli asset donati in modo che corrispondano se si intende utilizzare questa rest guida esattamente come presentato. Se gli spazi dei nomi non corrispondono, modificare gli spazi dei nomi prima di procedere o modificare gli spazi dei nomi seguendo le indicazioni rimanenti in questa sezione.
Eliminare il donatore Blazor Web App, perché non ha ulteriore uso in questo processo.
Aggiungere il .Client
progetto alla soluzione:
Visual Studio: fare clic con il pulsante destro del mouse sulla soluzione in Esplora soluzioni e scegliere Aggiungi>progetto esistente. Passare alla
.Client
cartella e selezionare il file di progetto (.csproj
).Interfaccia della riga di comando di .NET: usare il
dotnet sln add
comando per aggiungere il.Client
progetto alla soluzione.
Aggiungere un riferimento al progetto ASP.NET Core al progetto client:
Visual Studio: fare clic con il pulsante destro del mouse sul progetto ASP.NET Core e scegliere Aggiungi>riferimento al progetto. Selezionare il
.Client
progetto e selezionare OK.Interfaccia della riga di comando di .NET: dalla cartella del progetto ASP.NET Core usare il comando seguente:
dotnet add reference ../BlazorSample.Client/BlazorSample.Client.csproj
Il comando precedente presuppone quanto segue:
- Il nome del file di progetto è
BlazorSample.Client.csproj
. - Il
.Client
progetto si trova in unaBlazorSample.Client
cartella all'interno della cartella della soluzione. La.Client
cartella è affiancata alla cartella del progetto ASP.NET Core.
Per altre informazioni sul
dotnet add reference
comando, vederedotnet add reference
(documentazione di .NET).- Il nome del file di progetto è
Apportare le modifiche seguenti al file dell'app Program
ASP.NET Core:
Aggiungere servizi componenti Interactive WebAssembly con la AddInteractiveWebAssemblyComponents posizione in cui Razor vengono aggiunti i servizi componenti con AddRazorComponents.
Per il rendering automatico interattivo:
builder.Services.AddRazorComponents() .AddInteractiveServerComponents() .AddInteractiveWebAssemblyComponents();
Solo per il rendering Interattivo WebAssembly:
builder.Services.AddRazorComponents() .AddInteractiveWebAssemblyComponents();
Aggiungere la modalità di rendering Interactive WebAssembly (AddInteractiveWebAssemblyRenderMode) e altri assembly per il progetto in cui Razor viene eseguito il
.Client
mapping dei componenti con MapRazorComponents.Per il rendering automatico interattivo (automatico):
app.MapRazorComponents<App>() .AddInteractiveServerRenderMode() .AddInteractiveWebAssemblyRenderMode() .AddAdditionalAssemblies(typeof(BlazorSample.Client._Imports).Assembly);
Solo per il rendering Interattivo WebAssembly:
app.MapRazorComponents<App>() .AddInteractiveWebAssemblyRenderMode() .AddAdditionalAssemblies(typeof(BlazorSample.Client._Imports).Assembly);
Negli esempi precedenti modificare
BlazorSample.Client
in modo che corrisponda allo.Client
spazio dei nomi del progetto.
Aggiungere una Pages
cartella al .Client
progetto.
Se il progetto ASP.NET Core ha un componente esistente Counter
:
- Spostare il componente nella
Pages
cartella del.Client
progetto. - Rimuovere la
@rendermode
direttiva all'inizio del file del componente.
Se l'app ASP.NET Core non dispone di un Counter
componente, aggiungere il componente seguente Counter
(Pages/Counter.razor
) al .Client
progetto:
@page "/counter"
@rendermode InteractiveAuto
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
Se l'app adotta solo il rendering Interactive WebAssembly, rimuovere la direttiva e il @rendermode
valore:
- @rendermode InteractiveAuto
Eseguire la soluzione dal progetto di app ASP.NET Core:
Visual Studio: verificare che il progetto ASP.NET Core sia selezionato in Esplora soluzioni durante l'esecuzione dell'app.
Interfaccia della riga di comando di .NET: eseguire il progetto dalla cartella del progetto ASP.NET Core.
Per caricare il Counter
componente, passare a /counter
.
Implementare Blazoril layout e gli stili
Facoltativamente, assegnare un componente di layout predefinito usando il RouteView.DefaultLayout parametro del RouteView
componente.
In Routes.razor
l'esempio seguente usa un MainLayout
componente come layout predefinito:
<RouteView RouteData="routeData" DefaultLayout="typeof(MainLayout)" />
Per altre informazioni, vedere layout ASP.NET CoreBlazor.
Blazor Il layout del modello di progetto e i fogli di stile sono disponibili nel dotnet/aspnetcore
repository GitHub:
MainLayout.razor
MainLayout.razor.css
NavMenu.razor
NavMenu.razor.css
Nota
I collegamenti della documentazione all'origine del riferimento .NET in genere caricano il ramo predefinito del repository, che rappresenta lo sviluppo corrente per la versione successiva di .NET. Per selezionare un tag per una versione specifica, usare l'elenco a discesa Switch branches or tags. Per altre informazioni, vedere How to select a version tag of ASP.NET Core source code (dotnet/AspNetCore.Docs #26205) (Come selezionare un tag di versione del codice sorgente di ASP.NET - dotnet/AspNetCore.Docs #26205).
A seconda della modalità di organizzazione dei file di layout nell'app, potrebbe essere necessario aggiungere un'istruzione @using
per la cartella dei file di layout nel file dell'app _Imports.razor
per visualizzarli per l'uso nei componenti dell'app.
Non è necessario fare riferimento in modo esplicito ai fogli di stile quando si usa l'isolamento CSS. Il Blazor framework aggrega automaticamente i fogli di stile dei singoli componenti. Il foglio di stile in bundle dell'app è già a cui viene fatto riferimento nel componente dell'app App
({ASSEMBLY NAME}.styles.css
dove il segnaposto è il {ASSEMBLY NAME}
nome dell'assembly dell'app).
Restituire un oggetto RazorComponentResult
da un'azione del controller MVC
Un'azione del controller MVC può restituire un componente con RazorComponentResult<TComponent>.
Components/Welcome.razor
:
<PageTitle>Welcome!</PageTitle>
<h1>Welcome!</h1>
<p>@Message</p>
@code {
[Parameter]
public string? Message { get; set; }
}
In un controller:
public IResult GetWelcomeComponent() =>
new RazorComponentResult<Welcome>(new { Message = "Hello, world!" });
Viene restituito solo il markup HTML per il componente sottoposto a rendering. Il rendering dei layout e del markup di pagina HTML non viene eseguito automaticamente con il componente . Per produrre una pagina HTML completa, l'app può gestire un Blazor layout che fornisce markup HTML per <html>
, <head>
, <body>
e altri tag. Il componente include il layout con la @layout
Razor direttiva all'inizio del file di definizione del componente, Welcome.razor
per l'esempio in questa sezione. L'esempio seguente presuppone che l'app abbia un layout denominato RazorComponentResultLayout
(Components/Layout/RazorComponentResultLayout.razor
):
@using BlazorSample.Components.Layout
@layout RazorComponentResultLayout
È possibile evitare di inserire l'istruzione @using
per la Layout
cartella nei singoli componenti spostandola nel file dell'app _Imports.razor
.
Per altre informazioni, vedere layout ASP.NET CoreBlazor.
Spazi dei nomi dei componenti
Quando si usa una cartella personalizzata per contenere i componenti del Razor progetto, aggiungere lo spazio dei nomi che rappresenta la cartella alla pagina/visualizzazione o al _ViewImports.cshtml
file. Nell'esempio seguente :
- I componenti vengono archiviati nella
Components
cartella del progetto. - Il
{APP NAMESPACE}
segnaposto è lo spazio dei nomi del progetto.Components
rappresenta il nome della cartella.
@using {APP NAMESPACE}.Components
Ad esempio:
@using BlazorSample.Components
Il _ViewImports.cshtml
file si trova nella Pages
cartella di un'app Razor Pages o nella Views
cartella di un'app MVC.
Per altre informazioni, vedere ASP.NET Componenti di baseRazor.