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

Why does page not update after refresh when .cshtml changes

我正在尝试 Blazor 但我不明白为什么在刷新浏览器页面后更改 component 它没有更新? client 不应该像 angular 那样自我更新吗?

它只会在我重新启动 blazor 服务器时刷新。

Index.cshtml

@page "/"

<h1>Hello, world!</h1>

如果我将 <h1> 中的文本更改为 Hello people ,我保存项目并刷新页面(正如我在 Blazor 教程中所建议的那样)应该我没看到 Hello people 吗?

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

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

https://github.com/dotnet/aspnetcore/issues/5456

如果您进入“工具”>“选项”>“键盘”并在 "Show commands containing" 搜索框中搜索 "BrowserLink"。找到显示 "OtherContextMenus.BrowserLink.RefreshLinkedBrowsers" 的选项,默认设置为 CTRL+Alt+Enter。单击 "Remove",然后单击 select "Press Shortcut Keys" 输入并按 Ctrl+S。接下来(就在输入的左侧)将 "Global" 中的使用新快捷方式更改为 "Text Editor"。单击 "Ok" 直到 window 关闭。现在 Visual Studio 与保存文件和刷新链接浏览器共享 CTRL+S。

(这仅在编辑 window 中的文本编辑器 .cshtml、.css、.js 等文件是活动的 selections 时有效)警告:如果您不将其设置为全局以外的其他设置,那么它将覆盖保存的快捷方式,您将无法保存文件。

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

安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。

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

services
    .AddControllersWithViews()
    .AddRazorRuntimeCompilation();

services.AddMvc().AddRazorRuntimeCompilation();  

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

安装包 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation - 版本 3.1.6

安装后将启动文件设置为,

 services.AddMvc().AddRazorRuntimeCompilation();

执行以下操作:

  1. 从 NuGet 安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation。

  2. 将 Startup class 中的 ConfigureServices 方法更新为如下所示:

services.AddControllersWithViews().AddRazorRuntimeCompilation();

  1. 你很高兴。