Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Styra
Anmärkning
Det här är inte den senaste versionen av den här artikeln. Den aktuella versionen finns i .NET 10-versionen av den här artikeln.
Varning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i supportpolicyn för .NET och .NET Core. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .
Razor komponenter kan ändra HTML-elementinnehållet <head> på en sida, inklusive att ange sidans rubrik (<title> element) och ändra metadata (<meta> element).
Kontrollera <head> innehåll i en Razor komponent
Ange sidans rubrik med komponenten PageTitle , vilket gör det möjligt att återge ett HTML-element <title> till en HeadOutlet komponent.
Ange <head> elementinnehåll med komponenten HeadContent , som tillhandahåller innehåll till en HeadOutlet komponent.
I följande exempel anges sidans rubrik och beskrivning med hjälp av Razor.
ControlHeadContent.razor:
@page "/control-head-content"
<PageTitle>@title</PageTitle>
<h1>Control <head> Content Example</h1>
<p>
Title: @title
</p>
<p>
Description: @description
</p>
<HeadContent>
<meta name="description" content="@description">
</HeadContent>
@code {
private string description = "This description is set by the component.";
private string title = "Control <head> Content";
}
@page "/control-head-content"
<PageTitle>@title</PageTitle>
<h1>Control <head> Content Example</h1>
<p>
Title: @title
</p>
<p>
Description: @description
</p>
<HeadContent>
<meta name="description" content="@description">
</HeadContent>
@code {
private string description = "This description is set by the component.";
private string title = "Control <head> Content";
}
@page "/control-head-content"
<h1>Control <head> content</h1>
<p>
Title: @title
</p>
<p>
Description: @description
</p>
<PageTitle>@title</PageTitle>
<HeadContent>
<meta name="description" content="@description">
</HeadContent>
@code {
private string description = "Description set by component";
private string title = "Title set by component";
}
@page "/control-head-content"
<h1>Control <head> content</h1>
<p>
Title: @title
</p>
<p>
Description: @description
</p>
<PageTitle>@title</PageTitle>
<HeadContent>
<meta name="description" content="@description">
</HeadContent>
@code {
private string description = "Description set by component";
private string title = "Title set by component";
}
Kontrollera <head> innehåll under förberendering
Det här avsnittet gäller för förinstallerade Blazor WebAssembly appar och Blazor Server appar.
När Razor-komponenterna är förberenderade krävs användning av en layoutsida (_Layout.cshtml) för att styra <head>-innehållet med PageTitle och HeadContent-komponenterna. Orsaken till det här kravet är att komponenter som styr <head> innehållet måste återges före layouten med komponenten HeadOutlet .
Den här renderingsordningen krävs för att styra huvudinnehållet.
Om den delade _Layout.cshtml filen inte har någon komponenttagghjälp för en HeadOutlet komponent lägger du till den i elementen <head> .
I en obligatorisk, delad _Layout.cshtml fil för en Blazor Server app eller Razor Pages/MVC-app som bäddar in komponenter i sidor eller vyer:
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
I en obligatorisk, delad _Layout.cshtml fil för en förrenderad värdbaserad applikation:
<component type="typeof(HeadOutlet)" render-mode="WebAssemblyPrerendered" />
Ange en sidrubrik för komponenter via en layout
Ange sidrubriken i en layoutkomponent:
@inherits LayoutComponentBase
<PageTitle>Page Title</PageTitle>
<div class="page">
...
</div>
HeadOutlet komponent
Komponenten HeadOutlet återger innehåll som tillhandahålls av PageTitle och HeadContent komponenter.
I en Blazor Web App som skapats från projektmallen renderar komponenten HeadOutlet innehåll i App.razor:
<head>
...
<HeadOutlet />
</head>
I Blazor Server appar som skapats från projektmallen Blazor Server renderar en <head> innehåll för komponenten HeadOutlet i Pages/_Host.cshtml:
<head>
...
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
I Blazor Server appar som skapats från projektmallen Blazor Server renderar en <head> innehåll för komponenten HeadOutlet i Pages/_Layout.cshtml:
<head>
...
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
I en app som skapats från projektmallen Blazor WebAssembly läggs komponenten HeadOutlet till i samlingen RootComponents av WebAssemblyHostBuilder i klientsidans Program-fil:
builder.RootComponents.Add<HeadOutlet>("head::after");
När pseudoväljaren::after har angetts läggs innehållet i rotkomponenten till i det befintliga huvudinnehållet i stället för att innehållet ersätts. På så sätt kan appen behålla statiskt huvudinnehåll i wwwroot/index.html utan att behöva upprepa innehållet i appens Razor komponenter.
Ställ in en standardsidrubrik i en Blazor Web App
Ange sidrubriken i komponenten App (App.razor):
<head>
...
<HeadOutlet />
<PageTitle>Page Title</PageTitle>
</head>
Sidrubriken hittades inte i en Blazor WebAssembly app
I appar som skapats från projektmallen Fristående app Blazor, anger komponentmallen Blazor WebAssembly i komponenten NotFound (App) sidrubriken till App.razor.
I Blazor appar som skapats från en Blazor projektmall NotFound anger komponentmallen i komponenten App (App.razor) sidrubriken till Not found.
App.razor:
<NotFound>
<PageTitle>Not found</PageTitle>
...
</NotFound>
Ytterligare resurser
- Kontrollera rubriker i C#-kod vid start
-
Blazor exempel på GitHub-lagringsplats (
dotnet/blazor-samples) (hur du laddar ned)
Dokumentation om Mozilla MDN Web Docs:
ASP.NET Core