Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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# 在dotnet core 3.0 RC1中,是否可以在服务器上预呈现客户端Blazor应用程序?_C#_.net Core_Blazor - Fatal编程技术网

C# 在dotnet core 3.0 RC1中,是否可以在服务器上预呈现客户端Blazor应用程序?

C# 在dotnet core 3.0 RC1中,是否可以在服务器上预呈现客户端Blazor应用程序?,c#,.net-core,blazor,C#,.net Core,Blazor,我在之前的预览中读过一些关于这样做的文章,但没有一篇适合RC1 我试图实现的是,进入URL的第一个请求(无论是/还是/about等等)应该由服务器端应用程序呈现页面内容,并将完整的标记传递到浏览器 第一个请求完成后,客户端Blazor Web组装应用程序将接管 我现在所拥有的: 客户端-客户端Blazor应用程序 LCBlazor.Server-服务器端dotNet core 3应用程序 //MyApp.Server-Startup.cs public void配置服务(IServiceCo

我在之前的预览中读过一些关于这样做的文章,但没有一篇适合RC1

我试图实现的是,进入URL的第一个请求(无论是
/
还是
/about
等等)应该由服务器端应用程序呈现页面内容,并将完整的标记传递到浏览器

第一个请求完成后,客户端Blazor Web组装应用程序将接管

我现在所拥有的:

  • 客户端-客户端Blazor应用程序
  • LCBlazor.Server-服务器端dotNet core 3应用程序
//MyApp.Server-Startup.cs
public void配置服务(IServiceCollection服务)
{
services.AddMvc().AddNewtonsoftJson();
AddServerSideBlazor();
services.AddResponseCompression(选项=>
{
opts.MimeTypes=ResponseCompressionDefaults.MimeTypes.Concat(
新[]{“应用程序/八位字节流”});
});
}
//此方法由运行时调用。使用此方法配置HTTP请求管道。
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
app.UseResponseCompression();
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBlazorDebugging();
}
app.UseClientSideBlazorFiles();
app.UseFileServer();
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapFallbackToPage(“/_主机”);
//endpoints.MapFallbackToClientSideBlazor(“/index.html”);
});
}
@*LCBlazor.Server.Pages.\u Host.cshtml*@
@第“/”页
@命名空间LCBlazor.Server.Pages
@使用LCBlazor.Client
@addTagHelper*,Microsoft.AspNetCore.Mvc.TagHelpers
LCBlazor预渲染
@(等待Html.RenderComponentAsync(RenderMode.Server))
其他一切都按照默认blazor模板进行(RenderTree错误已修复)


当前的行为是应用程序加载,但如果我在浏览器中禁用JS,则不会得到任何内容,这表明应用程序仍然依赖客户端进行渲染。

@daniherrera这里有一个不同的问题。我正在尝试预呈现客户端blazor web程序集应用程序页面。很好,我现在明白了。通过服务器预渲染客户端wasm。好啊我删除“相关”评论。Blazor服务器托管模型仍然依赖于浏览器端JavaScript,因为它需要一个信号器连接才能与服务器端通信。@在RC1中,LexLi可以选择在服务器上预呈现Blazor服务器的输出,以便在服务器端完全呈现第一个请求。我正试图利用Blazor WebAssembly应用程序的这种行为,通过使用这两种方法托管它。谷歌上有很多文章讨论了不同的方法,这些方法在早期的预览版本中显然有效,但在RC1中不起作用,所以我的问题是如何让这种行为在RC1中起作用“可以选择在服务器上预呈现Blazor服务器的输出,以便在服务器端完全呈现第一个请求“这并不能使我上面所说的无效。虽然在服务器端呈现,但这些结果不会神奇地从服务器端跳到浏览器,我链接的那篇文章清楚地说明了浏览器端JavaScript/SignalR是如何将它们拉下来的。因此,无论您玩什么,JavaScript都不能被禁用。即使对于浏览器端Blazor,JavaScript仍然是必需的(根据设计)。