作为一个SPA框架,我想知道是否可以为Blazor中的每个页面设置一个页面标题?
我目前正在开发Blazor组件项目,并且无法找到添加页面标题的方法,因为在SPA中只有一个index.html,但是如果可以实现它来设置每个“页面”的标题,那将是非常有用的。
发布于 2019-11-14 20:31:42
注意:从.Net 6.0开始,官方支持更改标题,因此不再需要下面的解决方案。
发布于 2020-10-05 17:12:03
在ASP.NET核心5.0中,添加了一个用于标题的新组件
<Title value="Page title" />
首先在组件中添加using语句
@using Microsoft.AspNetCore.Components.Web.Extensions.Head
可以使用该命令安装(如果没有安装)。
dotnet add package Microsoft.AspNetCore.Components.Web.Extensions --version 5.0.0-preview9.20467.1
5.0.0-预览9.20467.1是我写这篇文章时的版本。请查看nuget url的最新版本。
Nuget url:https://www.nuget.org/packages/Microsoft.AspNetCore.Components.Web.Extensions/
然后添加标题标签。
<Title Value="My page title" />
参见下面的示例输出映像
发布于 2020-09-17 01:14:06
对于那些针对.NET Core3.1的人
对于这个帖子,您可以制作一个可重用的组件。
将以下脚本添加到js文件中,或添加到index.html中
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
...
<script>
window.setTitle = (title) => {
document.title = title;
}
</script>
</body>
</html>
在共享文件夹中创建一个新组件PageTitle.razor
@inject IJSRuntime JsRuntime;
@code {
[Parameter]
public string Title { get; set; }
protected override async Task OnInitializedAsync()
{
await SetTitle();
}
private async Task SetTitle()
{
await JsRuntime.InvokeVoidAsync("setTitle", Title);
}
}
添加到要更改以下名称的剃须刀页面:
<PageTitle Title="Home sweet home" />
https://stackoverflow.com/questions/58863542
复制相似问题