找不到路由值指定的回退端点:{ page: /_Host, area: }

mz1*_*378 4 blazor

我使用这个项目并创建了一个完全一样的项目,但是收到

找不到路由值指定的回退端点:{ page: /_Host, area: }。

启动项目时出错,在启动配置方法中,我有:

 app.UseEndpoints(endpoints =>
            {
                endpoints.MapBlazorHub();
                endpoints.MapDefaultControllerRoute();
                endpoints.MapFallbackToPage("/_Host");               
            });
Run Code Online (Sandbox Code Playgroud)

如何解决此错误?

小智 26

如果将项目 SDK 更新到 .NET 6,您可以将以下属性添加到 .csproj 文件中

<PropertyGroup>
  <UseRazorSourceGenerator>false</UseRazorSourceGenerator>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

来源:https ://github.com/dotnet/aspnetcore/issues/36535#issuecomment-919861308


rvn*_*ord 10

  1. 确保您在文件中<base href="~/" /><head />标签内有声明_Host.cshtml
  2. 如果您自定义了位置,请确保在文件中指定services.Configure<RazorPagesOptions>(options => options.RootDirectory = "/Pages");内部ConfigureServices(IServiceCollection services)方法。Startup.csPages
  3. 尝试删除endpoints.MapDefaultControllerRoute();并检查它是否会干扰您的路由。
  4. 尝试将您的_Host.cshtml文件放在RootDirectory您的页面内。
  5. 请确认您有@page "/"@namespace <MatchingYourRootPagesDir>上顶部指定的_Host.cshtml文件。

  • **RE 2:** 这也可以使用扩展方法进行配置,例如: `services.AddRazorPages(options =&gt; options.RootDirectory = "/YOUR_FOLDER");` (2认同)

小智 8

.NET6,在您的 csproj 文件中确保您使用 Web SDK。

<Project Sdk="Microsoft.NET.Sdk.Web">
Run Code Online (Sandbox Code Playgroud)

另外,将其添加到您的属性组中:

  <PropertyGroup>
     <UseRazorSourceGenerator>false</UseRazorSourceGenerator>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)