为什么.cshtml更改后刷新后页面不更新

Ber*_*ian 5 client-side asp.net-core blazor

我正在尝试Blazor,我不明白为什么component在刷新浏览器页面后更改a时,它不会更新?client更新本身不应该与更新类似angular吗?

仅在重新启动blazor服务器时刷新。

Index.cshtml

@page "/"

<h1>Hello, world!</h1>
Run Code Online (Sandbox Code Playgroud)

如果更改,可以说<h1>to 内的文本Hello people,则保存项目并刷新页面(如本Blazor教程中所建议),我不应该看到Hello people吗?

小智 9

在Asp.net Core 3.0之后,使用Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation程序包启用运行时编译。要启用运行时编译,应用程序必须:

安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationNuGet软件包。

更新项目的Startup .ConfigureServices方法以包括对AddRazorRuntimeCompilation的调用:

services
    .AddControllersWithViews()
    .AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud)

要么

services.AddMvc().AddRazorRuntimeCompilation();  
Run Code Online (Sandbox Code Playgroud)

  • 您还可以将“.AddRazorRuntimeCompilation();”添加到“services.AddRazorPages()”,而不是“services.AddControllersWithViews()”或“services.AddMvc()”。 (7认同)
  • 开启/关闭此功能是否会影响性能?在生产中关闭此功能但在开发中打开它会有什么不同吗? (3认同)
  • Razor 运行时编译是一项 MVC 功能,而不是受支持的 Blazor 功能。https://github.com/dotnet/aspnetcore/issues/16915 (2认同)

小智 7

您应该在 razor 页面中添加或启用运行时编译,

安装包 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 3.1.6

安装后设置启动文件为,

 services.AddMvc().AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud)


Flo*_*res 6

我猜您在连接调试器的情况下运行应用程序?这样可以防止重新编译。你需要:

Press Ctrl-F5 to run the app without the debugger. Running with the debugger (F5) isn't supported at this time.