根据本文,我创建了一个"Blazor WebAssembly"项目来测试"Prerender":

https://learn.microsoft.com/en-us/aspnet/core/blazor/components/prerendering-and-integration?view=aspnetcore-6.0&pivots=webassembly

以下是我的源代码:

https://temp-file.org/4w714tuZB0hBGN2/file

但我在启动项目后发现了问题.首页转好了,点击首页左边的"计数器",页面转好了.但是,当我单击浏览器上的刷新按钮时,将返回404错误:

Http://localhost:5287/counter

HTTP错误404

这表明它不能直接访问"/Counter"和其他页面 除了主页.

我如何解决这个问题,让"Prerender"在所有页面上都能工作?

提前感谢您的帮助!

推荐答案

您的项目有问题,在Program.cs%的服务器项目中,它应该是

app.MapFallbackToPage("/_Host");

app.MapFallbackToFile("/_Host");

Also, in _Host.cshtml, the official documentation states to add @namespace {APP NAMESPACE}.Client, 不 @using {APP NAMESPACE}.Client. Although there will be no impact, I suggest you follow the documentation.

当然,在刷新FetchData页时,会出现以下错误:

InvalidOperationException: Can不 provide a value for property 'Http' on type 'BlazorAppTest.Client.Pages.FetchData'. There is no registered service of type 'System.Net.Http.HttpClient'.

根据这GitHub Issue人的说法,微软可能正在准备在.Net 8.0修复它.

Csharp相关问答推荐

应用程序启动时出现错误:操作无法同时使用表单和SON主体参数

获取Windows和Linux上的下载文件夹

如何在Visual Studio中为C# spread操作符设置格式规则?

FileStream. FlushAsync()是否确保文件被写入磁盘?

如何分配对象后的class的属性?

MudBlazor—MudDataGrid—默认过滤器定义不允许用户修改基本过滤器

S能够用DATETIME来计算,这有什么错呢?

如何使datagridview的列具有响应性,以便不是所有列都更改其宽度

MS Graph v5.42.0:在寻呼消息时更改页面大小

如何使用C#获取FireStore中的列表输出文档

如何使用XmlSerializer序列化带有CDATA节的XML文件?

在DoubleClick上交换DataGridViewImageColumn的图像和工具提示

在扩展方法中,IEnumerable<;T>;不会转换为IEumerable<;T&>

使用ASP.NET MVC for Lemon Squeezy X-Signature创建散列

如何在Polly重试策略成功之前将HttpClient请求排队?

C#命名管道-编码错误?

在.NET Maui中,Flyoutindow/Hamburger菜单可以在shell 之外实现吗?

如何在C# WinForm控件中使用Windows 10/11的黑暗主题?

避免在特定区域中设置Visual Studio代码的自动格式

实例化列表时的集合表达式是什么?