Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 预渲染Blazor WebAssembly的正确方法是什么?_C#_Asp.net Core_Blazor - Fatal编程技术网

C# 预渲染Blazor WebAssembly的正确方法是什么?

C# 预渲染Blazor WebAssembly的正确方法是什么?,c#,asp.net-core,blazor,C#,Asp.net Core,Blazor,经过以下步骤后,它几乎可以工作: 安装托管版本的blazorwasmtemplate应用程序。 dotnet new blazorwasm --hosted -o HostedWasm 将\u Hosted.cshtml从blazorserver模板复制到页面文件夹 将服务器的Startup.cs中的endpoints.MapFallbackToFile(“index.html”)更改为endpoints.MapFallbackToPage(“/\u Host”) 在\u Host.csht

经过以下步骤后,它几乎可以工作:

  • 安装托管版本的
    blazorwasm
    template应用程序。
    dotnet new blazorwasm --hosted -o HostedWasm
    
  • \u Hosted.cshtml
    blazorserver
    模板复制到
    页面
    文件夹
  • 将服务器的
    Startup.cs
    中的
    endpoints.MapFallbackToFile(“index.html”)
    更改为
    endpoints.MapFallbackToPage(“/\u Host”)
  • \u Host.cshtml
  • 现在,如果运行
    dotnet
    服务器,您将能够使用预呈现的HTML导航模板页面

    但是,我有两个问题:

  • 这是Blazor WebAssembly预渲染的“正确”方法吗?我在文件里看不到这方面的内容
  • 如何在服务器端和客户端之间共享DI?现在,如果您导航
    /
    ,然后转到
    /fetchdata
    ,一切都会好起来,但是如果您在
    /fetchdata
    路径上使用F5(例如刷新),您将看到
  • InvalidOperationException:无法为属性“Http”提供值 在类型“HostedWasm.Client.Pages.FetchData”上。没有注册的 类型为“System.Net.Http.HttpClient”的服务


    要修复它您需要将
    HttpClient
    配置代码从Client/Program.cs复制到Server/Startup.cs

    为什么不遵循其中的步骤?关于第二个问题,请访问@AmirhosseinMehrvarzi,我在该教程中没有看到任何关于WebAssembly的内容。它不是完全使用Blazor服务器构建的吗?我不想在我的应用程序中使用signar修改DOM。谢谢你的问题链接!为什么不遵循里面的步骤?关于第二个问题,请访问@AmirhosseinMehrvarzi,我在该教程中没有看到任何关于WebAssembly的内容。它不是完全使用Blazor服务器构建的吗?我不想在我的应用程序中使用signar修改DOM。谢谢你的问题链接!