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

时间:2019-01-09 08:40:13

标签: asp.net-core client-side blazor

我正在尝试Blazor,但我不明白为什么刷新浏览器页面后更改component时不更新? client是否应该像angular那样进行更新?

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

Index.cshtml

@page "/"

<h1>Hello, world!</h1>

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

6 个答案:

答案 0 :(得分:16)

在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();  

答案 1 :(得分:2)

您应该重建项目...非常简单...保存项目还不够。在看到更改之前,应先在用户浏览器中下载新建的C#.dll文件。实际上,这与Blazor无关。

自动重建功能即将在Blazor中引入(至少暂时仅针对Blazor项目)。就像Angular一样。

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

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

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

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

 services.AddMvc().AddRazorRuntimeCompilation();

答案 4 :(得分:0)

如果进入“工具”>“选项”>“键盘”,然后在“显示包含的命令”搜索框中搜索“ BrowserLink”。查找默认为“ OtherContextMenus.BrowserLink.RefreshLinkedBrowsers”的选项,此选项设置为CTRL + Alt + Enter。单击“删除”,然后选择“按快捷键”输入,然后按Ctrl + S。下一步(在输入的左侧)更改将“全局”中的新快捷方式用作“文本编辑器”。单击“确定”,直到关闭窗口。现在,Visual Studio与“保存文件”和“刷新链接的浏览器”共享CTRL + S。

(仅当您在编辑窗口中的文本编辑器.cshtml,.css,.js等文件处于活动状态时,此选项才起作用)警告:如果未将其设置为除global之外的其他值,则它将覆盖“保存”的快捷方式,您将无法保存文件。

答案 5 :(得分:0)

执行以下操作:

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

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

services.AddControllersWithViews().AddRazorRuntimeCompilation();

  1. 你很高兴。