ASP.NET Core Blazor uygulamalarında içeriği denetleme <head>
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.
Razorbileşenleri, sayfanın başlığını (öğesi) ayarlama ve meta verileri (<title>
<meta>
öğeler) değiştirme dahil olmak üzere sayfanın HTML <head>
öğesi içeriğini değiştirebilir.
Bileşendeki Razor içeriği denetleme <head>
Bir html <title>
öğesinin HeadOutlet
bir bileşene işlenmesini PageTitle sağlayan bileşeniyle sayfanın başlığını belirtin.
Bileşene içerik sağlayan bileşenle öğe içeriğini HeadOutlet
belirtin.<head>
HeadContent
Aşağıdaki örnek, kullanarak Razorsayfanın başlığını ve açıklamasını ayarlar.
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";
}
Ön kayıt sırasında içeriği denetleme <head>
Bu bölüm önceden oluşturulmuş Blazor WebAssembly uygulamalar ve Blazor Server uygulamalar için geçerlidir.
Bileşenler önceden girildiğindeRazor, ve HeadContent bileşenleriyle PageTitle içeriği denetlemek <head>
için bir düzen sayfası (_Layout.cshtml
) kullanılması gerekir. Bu gereksinimin nedeni, içeriği denetleen <head>
bileşenlerin bileşenle birlikte HeadOutlet düzenden önce işlenmesi gerektiğidir. Baş içeriği denetlemek için bu işleme sırası gereklidir.
Paylaşılan _Layout.cshtml
dosyanın bir bileşen için HeadOutlet Bileşen Etiketi Yardımcısı yoksa, bunu öğelere <head>
ekleyin.
Bileşenleri sayfalara veya görünümlere ekleyen bir Blazor Server uygulamanın veya Razor Pages/MVC uygulamasının gerekli, paylaşılan _Layout.cshtml
dosyasında:
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
Önceden oluşturulmuş barındırılan bir uygulamanın gerekli, paylaşılan _Layout.cshtml
dosyasında Blazor WebAssembly :
<component type="typeof(HeadOutlet)" render-mode="WebAssemblyPrerendered" />
Düzen aracılığıyla bileşenler için sayfa başlığı ayarlama
Düzen bileşeninde sayfa başlığını ayarlayın:
@inherits LayoutComponentBase
<PageTitle>Page Title</PageTitle>
<div class="page">
...
</div>
HeadOutlet
bileşeni
Bileşen, HeadOutlet ve HeadContent bileşenleri tarafından PageTitle sağlanan içeriği işler.
Proje şablonundan HeadOutlet oluşturulan içindeki Blazor Web App bileşen App.razor
içeriği işler<head>
:
<head>
...
<HeadOutlet />
</head>
Blazor Server Proje şablonundan Blazor Server oluşturulan uygulamalarda, Bileşen Etiketi Yardımcısı içindeki Pages/_Host.cshtml
bileşenin HeadOutlet içeriğini işler<head>
:
<head>
...
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
Blazor Server Proje şablonundan Blazor Server oluşturulan uygulamalarda, Bileşen Etiketi Yardımcısı içindeki Pages/_Layout.cshtml
bileşenin HeadOutlet içeriğini işler<head>
:
<head>
...
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
</head>
Proje şablonundan Blazor WebAssembly oluşturulan bir uygulamada, HeadOutlet bileşen istemci tarafı Program
dosyasındaki koleksiyonuna WebAssemblyHostBuilder eklenirRootComponents:
builder.RootComponents.Add<HeadOutlet>("head::after");
Sahte seçici belirtildiğinde::after
, kök bileşenin içeriği, içeriği değiştirmek yerine mevcut baş içeriğine eklenir. Bu, uygulamanın bileşenlerindeki wwwroot/index.html
içeriği yinelemek zorunda kalmadan statik baş içeriğinin içinde tutulmasını Razor sağlar.
Içinde varsayılan sayfa başlığı ayarlama Blazor Web App
Bileşende App
sayfa başlığını ayarlayın (App.razor
):
<head>
...
<HeadOutlet />
<PageTitle>Page Title</PageTitle>
</head>
Uygulamada sayfa başlığı Blazor WebAssembly bulunamadı
Blazor Tek Başına Uygulama proje şablonundan Blazor WebAssembly oluşturulan uygulamalarda, NotFound
bileşendeki App
(App.razor
) bileşen şablonu sayfa başlığını olarak Not found
ayarlar.
Blazor Proje Blazor şablonundan oluşturulan uygulamalarda, NotFound
bileşendeki App
(App.razor
) bileşen şablonu sayfa başlığını olarak Not found
ayarlar.
App.razor
:
<NotFound>
<PageTitle>Not found</PageTitle>
...
</NotFound>
Ek kaynaklar
- Başlangıçta C# kodunda üst bilgileri denetleme
- Blazorörnekler GitHub deposu () (
dotnet/blazor-samples
nasıl indirilir)
Mozilla MDN Web Belgeleri belgeleri:
ASP.NET Core